标签: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发送。
标签:multi date alter ram sql语句 第一个 优化 发送 mybatis
原文地址:https://www.cnblogs.com/chenloveslife/p/9489482.html