我尝试从我的表中选择,只选择最后一行。我试过这个:
rset = s.executeQuery("select noorder from orders");
rset.last();
String noorder = rset.getString("noorder");`
rset是resultset,s是statement。但它抛出一个异常: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();
关于java - 使用sql server从jdbc中的结果集中转到最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10659083/