美文网首页
Mybatis中Update返回值什么?

Mybatis中Update返回值什么?

作者: 一个菜鸟JAVA | 来源:发表于2019-04-04 16:20 被阅读0次
问题

在Mybatis执行Update语句,会返回一个值,该值到底是受影响的条数还是其他什么?

测试

在数据库中插入一条数据,然后执行更新:

mysql> insert into t_user (id,user_name,age) value (1,'tom',18);
Query OK, 1 row affected
mysql> select * from t_user;
+----+-----------+-----+
| id | user_name | age |
+----+-----------+-----+
|  1 | tom       |  18 |
+----+-----------+-----+
1 row in set

mysql> update t_user set age = 18 where id = 1;
Query OK, 0 rows affected
Rows matched: 1  Changed: 0  Warnings: 0

可以看见,在命令行中返回中显示:匹配到一条数据,更新了0条数数据.因为Mysql在更新时,如果发现数据一样,是不会去更新数据的.
然后使用java代码执行同样的update语句,查看返回值.代码如下:


代码和结果

执行结果为1,说明返回的并不是受影响的条数,而是匹配条数.
修改链接配置信息,再次执行:


修改后代码和结果
结论

查看mysql链接配置说明,其中有说过这个配置的作用.其实不管你java用的是什么框架,
update返回值是什么取决于你的链接驱动配置.所以默认情况下,返回的是update匹配到的记录条数

相关文章

网友评论

      本文标题:Mybatis中Update返回值什么?

      本文链接:https://www.haomeiwen.com/subject/dmlqiqtx.html