首页 > 代码库 > 对只转发结果集的无效操作 first
对只转发结果集的无效操作 first
今天只用jdbc连接Oracle查询结果时,出现了一个: 对只转发结果集的无效操作 first 的错误java.sql.sqlexception。
出现这个结果的原因是:使用 Statement ste = this.con.createStatement();这种方式获得的
tatement 只使用默认方式的 ResultSet。它只能通过 next()方法来进行遍历。如果使用 first()或者 last()方法就会出错。
解决的方法很简单:如下
PreparedStatement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
或者就不要使用 first() 和 last() 方法。只使用 next() 方法遍历
顺便简单介绍一下各个参数:
1. ResultSet.TYPE_FORWARD_ONLY (略)
2. ResultSet.TYPE_SCROLL_INSENSITIVE 双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。
3. ResultSet.TYPE_SCROLL_SENSITIVE 双向滚动,并及时跟踪数据库里的更新,以便更改ResultSet中的数据。
4. ResultSet.CONCUR_READ_ONLY 只读取ResultSet
5. ResultSet.CONCUR_UPDATABLE 用ResultSet更新数据库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。