今天只用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更新数据库
05-07 11:17