美文网首页
关于Mybatis批量更新的一个小坑

关于Mybatis批量更新的一个小坑

作者: ilovebugs | 来源:发表于2018-05-25 11:15 被阅读282次

    问题
    最近在做项目的时候,使用到了Mybatis(mysql数据库)的批量更新的功能,批量更新一条记录是正常的,但是一次批量更新多条的时候却出现了如下图的异常:
    首先贴上我的动态sql:

    image.png

    异常信息:


    image.png

    原因分析

    1. Mybatis批量更新原理: 在一个statament语句同时执行多条update语句
    2. mysql默认一个statament语句只能执行一个udpate语句

    解决办法

    1. mysql的jdbc连接字符串中增加allowMultiQueries=true属性,如下图:


      image.png
    2. 在程序中对SQL语句以分号拆分成多条SQL语句,然后使用Statement的addBatch方法,最后executeBatch就行

    注意
    Mybatis批量更新,不管更新了多少条记录,返回影响行数都为1,如下图:

    image.png

    参考
    https://blog.csdn.net/zyz511919766/article/details/7336279

    相关文章

      网友评论

          本文标题:关于Mybatis批量更新的一个小坑

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