使用SQL Server从jdbc中的结果集中转到最后一行

ban*_*ndi 4 java sql-server-2005 jdbc resultset

我尝试从表中选择,仅选择最后一行。我已经试过了:

rset = s.executeQuery("select noorder from orders");
rset.last();
String noorder = rset.getString("noorder");`
Run Code Online (Sandbox Code Playgroud)

rset是结果集,s是语句。但是它抛出一个例外:ResultSet只能在正向访问`

我试图这样做:

if (rset != null) {                
   while(rset.next()){
       rset.last();
   }
}
Run Code Online (Sandbox Code Playgroud)

我做错了吗?任何的想法?谢谢

编辑:这是答案,如@ Bhavik-Ambani所建议(感谢他)。这是我的代码:

        Statement s2 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
        rset = s2.executeQuery("select noorder from orders");
        rset.afterLast();
        GETLASTINSERTED:
        while(rset.previous()){
            noorder = rset.getString("noorder");
            break GETLASTINSERTED;//to read only the last row
        }
Run Code Online (Sandbox Code Playgroud)

希望对您有所帮助。爪哇岩石!

Bha*_*ani 5

默认的ResultSet对象是不可更新的,并且具有只能向前移动的光标。因此,您只能从第一行到最后一行迭代一次。

在代码级别,您可以执行以下操作

Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet resultSet = statement.executeQuery("select noorder from orders");
resultSet.afterLast();
while (resultSet.previous()) {
  String productCode = resultSet.getString("col_one");
  String productName = resultSet.getString("col_two");

}
connection.close();
Run Code Online (Sandbox Code Playgroud)