使用sql server从jdbc中的结果集转到最后一行

我尝试从我的表中选择,只选择最后一行。 我试过这个:

rset = s.executeQuery("select noorder from orders"); rset.last(); String noorder = rset.getString("noorder");` 

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

我试过这个:

 if (rset != null) { while(rset.next()){ rset.last(); } } 

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

编辑:这是答案,正如@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 } 

希望它会帮助另一个人。 Java摇滚!

默认的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(); 

请记住应用order by子句,否则ResultSet的最后一个条目可能不是您所期望的。

 rset = s.executeQuery("SELECT * FROM table_name ORDER BY unique_column DESC LIMIT 1"); String noorder = rset.getString("noorder");`