利用JDBC连接数据库ResultSet查询到的数据与数据库里数据不一致

1 篇文章 0 订阅
1 篇文章 0 订阅

利用JDBC连接oracle数据库,ResultSet查询到的数据与数据库里数据不一致

今天在写完利用JDBC操作Oracle数据库的相关函数后进行测试时遇到了个小问题,也算是有所收获,在此记录下。
一开始测试通过JDBC操作数据库,对数据库进行插入、删除等操作,这边程序执行完成后,然后在数据库那一边查看数据,相关数据也已经更新,到这里都没有问题,很顺利。

然后在测试查询指定用户的常用城市列表这一函数时出现了问题,因为数据库里面数据比较少,所以我就在数据库一端执行了多次重复的插入操作,将指定用户的常用城市列表丰富下,然后我就在程序里进行相关函数调用,结果,相应的ResultSet rs里{图1}始终只有一条数据,尝试查询其它用户也是如此,有的用户甚至一条数据也没有{图2},明明数据库一端有很多数据。

一开始我怀疑是我是用了Set<>来存储ResultSet里的数据的原因,是不是重复的数据就被忽略了呢?然后我把将数据存储到set里的代码删除掉,这样就与set无关了,然后对rs里的数据个数(也就是行数)进行计算,结果并没有改变,set原因可以排除。

后来我又怀疑是不是jar包用错了,有个版本6的和版本14的,然后我都尝试了下,结果并没有改变。

后来因为返回的数据总是第一条,然后我就尝试着在数据库一端对第一条数据动手脚,改了城市名字,然后再执行程序,结果返回的城市名字还是之前没
改过的。到这里思路渐渐清晰,因为数据不同步,难不成链接到的库不是同一个?赶紧去查看下用户名和密码,确认是同一个,再说了之前测试其它函数数据是同步的啊。

忽然想到oracle数据库有提交这么一说,赶紧去数据库端看一看,提交后,问题解决!

之前测试其他函数用的都是通过JDBC添加的数据,所以到了最后测试查询指定用户常用城市列表时才碰见这个问题!

JDBC操作oracle数据库好像有自动提交这么一说,通过sql developer操作oracle需要手动提交!

因为用Set<>存储数据库里相关数据,得到的顺序与数据库里的不一样,后来换成了List{图1}。

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值