只进ResultSet 不支持请求的操作和不支持此游标类型/并发组合

本文介绍了解决使用JDBC操作时遇到的ResultSet不支持请求的操作异常的方法。通过调整ResultSet的类型和并发模式,例如设置为TYPE_SCROLL_SENSITIVE和CONCUR_UPDATABLE,或者更改为CONCUR_READ_ONLY来避免冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用jdbc操作时 跑出异常  只进ResultSet 不支持请求的操作

那肯定是你 在使用resultset的游标操作 机调用 resultSet.first ()  resultSet.last等等时

你要做的时就是设置可以使用游标操作 就是设置滚动操作

如果是statement

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVEResultSet.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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值