编程过程中发现这样的问题: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
ResultSetcursor is initially positioned before the first row; the first call to the methodnextmakes 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
nextwill implicitly close it. AResultSetobject's warning chain is cleared when a new row is read. -
-
Returns:
-
trueif the new current row is valid;falseif there are no more rows
Throws:
-
SQLException- if a database access error occurs
-

本文探讨了在使用Java进行数据库操作时遇到的ResultSet没有当前行的问题,并详细解释了如何通过调用next()方法来定位到结果集的第一行,从而避免出现此异常。
4421

被折叠的 条评论
为什么被折叠?



