使用jdbc操作时 跑出异常 只进ResultSet 不支持请求的操作
那肯定是你 在使用resultset的游标操作 机调用 resultSet.first () resultSet.last等等时
你要做的时就是设置可以使用游标操作 就是设置滚动操作
如果是statement
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
TYPE_SCROLL_SENSITIVE
该常量指示可滚动并且通常受 ResultSet
底层数据更改影响的 ResultSet
对象的类型。
CONCUR_UPDATABLE
该常量指示可以更新的 ResultSet
对象的并发模式。
若果是prepareStatement
connection.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
接着出现 不支持此游标类型/并发组合
因为 con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 导致了冲突。
INSENSITIVE 定义一个游标,以创建将由该游标使用的数据的临时复本。对游标的所有请求都从 tempdb 中的这一临时表中得到应答;因此,在对该游标进行提取操作时返回的数据中不反映对基表所做的修改,并且该游标不允许修改。使用 SQL-92 语法时,如果省略 INSENSITIVE,则已提交的(任何用户)对基础表的删除和更新都反映在后面的提取中。 也就是 ResultSet.TYPE_SCROLL_INSENSITIVE 要求是 只读的。 但是后面的 ResultSet.CONCUR_UPDATABLE 又要求 可更新。 所以导致这个 冲突的问题。
把 ResultSet.CONCUR_UPDATABLE 修改为 ResultSet.CONCUR_READ_ONLY