1.需求分析
近期,笔者在测试编程式事务的时候发现了一个问题:在测试接口中执行mybatis的update时,字段值设置不变,却返回还是1;这样的结果直接导致了编程式事务的原子性捕获形同虚设,好了笔者分享如下的解决方案
2.实现方案
①问题描述:在mysql客户端,笔者这里用的是navicat,在不修改字段值的情况下执行update时,返回的是0,但在mybatis中返回的却是1
②解决方案
在数据库连接url后缀追加userAffectRows=true
#测试服务器数据库 jdbc.url = jdbc:mysql://localhost:3306/online_copy?useUnicode=true&useSSL=false&useAffectedRows=true jdbc.username = root jdbc.password = root
userAffectRows:表示是否用受影响的行数替代匹配查找到的行数来返回数据,也就是查找到了,但不一定真正修改了,在musql中默认设置为false,所以这里把这个字段设置为true,返回受影响的行数即可;
好了,我是张星,欢迎加入博主技术交流群,群号:313145288