mybatis update返回值
之前一直觉得update的返回值 是受影响的条数,但是如果我什么数据都没修改update 返回的是什么呢
下面我在代码里这样判断
int i = dataService.update(data);
if(i > 0) {
System.out.println("修改成功");
} else {
System.out.println("修改失败");
}
你觉得它会输出什么呢。
结果是修改成功。为什么呢?按理说数据没改修,那么受影响的条数为0,那应该是输出修改失败的。原来是因为update 的返回值是matched的条数,也就是表中匹配where语句的条数,并不是受影响条数,不然输出结果就是修改失败
如果我们要让update 操作的返回值是受影响的行数呢
修改数据库链接配置:增加了 useAffectedRows 字段信息。
jdbc.url=jdbc:mysql://localhost:3306/test?useAffectedRows=true
再重启,如果数据无修改,那打印的结果就是修改失败