美文网首页
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