数据库更新数据未成功返回更新条数问题

2o连接mysql数据库,发现同一个update执行多次,返回的int值都是1。

我记得同样的update再次执行时 受影响行数是0。

Update语句响应条数为0的情况只有两种:

1.没有找到更新的数据。

2.更新的数据和原数据一样。

对于再次返回0,网上的资料是,MySQL 为了提升性能,当它发现要执行的修改内容与数据库中完全一致时,对它而言,此时修改是毫无意义的,反而会消耗一次执行修改的性能,于是它就不再做修改,因而受影响行数就是0。

 

至于mybatis,网上有说mybatis这个第三方持久化框架返回来的是被匹配的影响行数,所以返回的始终是1,那如果想要以返回的行数作为判断结果,需要在db连接串里使用useAffectedRows=true,即

useAffectedRows的作用:

如果未添加该参数,则更新数据时,返回的是匹配上的条数,如果加上该参数,则返回实际更新的条数

jdbc:mysql://127.0.0.1:3306/cn_appoint?characterEncoding=utf-8&useAffectedRows=true 
posted @ 2022-06-21 14:48  HelloWorld!!!好难啊  阅读(81)  评论(0编辑  收藏  举报