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

 booleannext()
          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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值