【SQL学习笔记】查询结果resultset无法回滚问题

在使用Statement从数据库获取ResultSet时遇到不能回滚的问题,即一旦遍历过某些元素,无法再次访问。原因是创建Statement时未指定ResultSet的类型和并发性。正确做法是创建Statement时设置ResultSet为TYPE_SCROLL_INSENSITIVE和CONCUR_READ_ONLY,这样可以双向滚动。当需要回滚时,可以使用resultSet.previous(), resultSet.next()或resultSet.first()。JDBC2.0的老问题,现在的默认配置可能已解决此问题。" 106466833,7538403,Oracle数据迁移:PL/SQL Developer的PDE文件方法,"['Oracle数据库', '数据库迁移', 'PL/SQL', '数据导出', '数据导入']
摘要由CSDN通过智能技术生成
之前发现一个问题,用statement取resultSet时,得到的resultSet不能回滚,比如说取第1,2,3个元素后,你再想去取第一个数据,会报错,不能调用previous函数。并且,如果第一个取的是后边的元素,游标也会相应的移动到那里,无法回滚,也就是比如,你直接取第4个元素,能取出来,但是你就取不到第1,2,3个了。
查资料后发现,是用connection创建statement时未加参数直接创建造成的,即
myConnection.createStatement()
较为合适的写法应该是:
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值