使用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");`