java.sql.SQLException: 对只转发结果集的无效操作
?? blog迁移至:http://www.micmiu.com
?
错误代码如下:
写道java.sql.SQLException: 对只转发结果集的无效操作: previous产生原因:
?
异常出现于移动结果集的指针时,原因是在生成statement对象的时候提供的参数不同无参数的那个方法使用的是默认参数,statement执行后得到的结果集类型为 ResultSet.TYPE_FORWARD_ONLY.这种类型的结果集只能通过rs.next();方法逐条读取,使用其他方法就会报异常.
?
解决办法:
?
需要在Statement或PrepareStatement的实例化中加入参数使其可以回滚:
ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY
?
把:Statement stmt= conn.createStatement();修改为:
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
?
把:pstmt?=?sqlCon.prepareStatement(sql);? 修改变为:
PrepareStatement pstmt=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
?
参数说明:
ResultSet.TYPE_FORWARD_ONLY? :默认,这种类型的结果集只能通过rs.next()读取ResultSet.TYPE_SCROLL_INSENSITIVE :双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。?
?
转载请注明来自:Michael's blog @ http://sjsky.iteye.com
?
-----------------------------------分 ------------------------------------隔 ------------------------------------线 --------------------------------------