数据库更新数据未成功返回更新条数问题
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