码迷,mamicode.com
首页 > 数据库 > 详细

MyBatis一个映射发送多条SQL遇到的问题

时间:2018-08-16 20:57:43      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:multi   date   alter   ram   sql语句   第一个   优化   发送   mybatis   

在做批量更新的时候,我们可以知道经常是用mybatis动态sql拼接多条sql语句,如:

    <update id="alterStudentDormBatch" parameterType="Map">
        <foreach collection="stuDormMap" index="stuId" item="newDorm" separator=";">
            UPDATE student
            <set>
                stu_dorm=#{newDorm}
            </set>
            WHERE stu_id=#{stuId}
        </foreach>
    </update>

然而却一直报错,sql语句显然没有问题,在调试的时候发现第一个map传给数据库没有问题,而后面的map都没有传入,怀疑是数据库的只接受了第一个update的sql语句。

后来发现,原来mysql的批量更新是要我们主动去设置的, 就是在数据库的连接url上设置一下,加上* &allowMultiQueries=true *即可,即可一次性发送多个sql语句(batch)。

 

以上是批量更新的问题,其实还可以再优化,通过case...when...then..来拼接一条sql发送。

MyBatis一个映射发送多条SQL遇到的问题

标签:multi   date   alter   ram   sql语句   第一个   优化   发送   mybatis   

原文地址:https://www.cnblogs.com/chenloveslife/p/9489482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!