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

标签 java sql-server-2005 jdbc resultset

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

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/

相关文章:

java - 如何在没有任何 IDE 的情况下运行基本的 Spring MVC 应用程序?

sql-server - SQL Server 2005 Express 其他用户看不到存储过程

python - 通过Python确定JDK安装目录

java - Intellij IDEA 调试器不适用于 Gradle Vert.X 项目

java - 多线程锁定 Java Swing GUI

SQL 如果没有返回行则执行此操作

sql-server-2005 - 对价格和值(value)使用 varchar 而非十进制有什么好处

Java Time API 从给定年表的 sql 时间戳中获取偏移量

java - 替换 jdbc.support.nativejdbc 在 Spring 5 中删除

java - SQL Server 的 JDBC 结果集