编程过程中发现这样的问题: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 methodnext
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. AResultSet
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
-