JDBC中rs.next()的思考

編程過程中發現這樣的問題: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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章