JDBC中rs.next()的思考

来源:互联网 发布:手机视频水印软件 编辑:程序博客网 时间:2024/05/22 10:27

编程过程中发现这样的问题:ResultSet rs, 当执行好查询之后操作比如 rs.getInt(1),会发生异常:

 com.microsoft.sqlserver.jdbc.SQLServerException: ResultSet 没有当前行。
 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyOnValidRow(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getterGetColumn(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(Unknown Source)


在这行之前添加了rs.next()操作就可以了,查询了一下文档才知道了原因。


java.sql
Interface ResultSet

 boolean next()
          Moves the cursor down one row from its current position  

Method Detail

next

public boolean next()             throws SQLException
Moves the cursor down one row from its current position. A ResultSet cursor is initially positioned before the first row; the first call to the method next makes the first row the current row; the second call makes the second row the current row, and so on.

If an input stream is open for the current row, a call to the method next will implicitly close it. A ResultSet object's warning chain is cleared when a new row is read.

 

Returns:
true if the new current row is valid; false if there are no more rows
Throws:
SQLException - if a database access error occurs

原创粉丝点击