java jdbc连接的中preparedStatement在调用setString时的问题

本文记录了一次因数据库字段类型从varchar2改为char导致的数据查询失败经历。通过排查发现,使用PreparedStatement进行操作时,对于char类型字段需要特别注意。

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

最近在做一个小项目,因为是接的别人的单子,数据库也是使用人家已经设计好的。以前自己做的数据库设计中主要是字符格式的,并且主要是varchar2类型的。这次也跟以前一样在执行sql的时候用PreparedStatement来操作,但是试了很多次,本来能查出来的数据,就是不出来,而且也没有异常抛出,就是在执行rs.next()时返回false。仔细的测试了两个晚上,测试了不同的数据库,不同的编码方式,不同的文件方法调用等等。直到最后觉得是不是数据库的编码引起的问题,换了不同数据库后还是不行。

后来,在研究他们的数据库数据时,发现他们的那个字段是char类型。又测试了几次,最终确定就是这个惹的祸。真是功夫不负有心人啊,我终于找到了这个问题所在。

兴奋的同时,心里也难免有些失落,大体知道char跟varchar2的区别,但是还是没到火候啊!!!!!!

谨记!

谨记!

谨记!

谨记!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值