更新数据库时,一次性发送多条sql,性能高于一次一条sql执行~
Mysql不支持批量更新,但可以通过以下实现:
UPDATE xxxxx
<trim prefix="set" suffixOverrides=",">
<trim prefix="field_1=case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.field1!=null">
when id=#{i.id} then #{i.field1}
</if>
</foreach>
</trim>
<trim prefix="field_2=case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.fileld2!=null">
when id=#{i.id} then #{i.fileld2}
</if>
</foreach>
</trim>
</trim>
where id in
<foreach collection="list" open="(" separator="," close=")" item="item">
#{item.id}
</foreach>
虽然看着挺繁琐~ 但总比一条一条sql执行效率高