MyBatis批量更新:
1、傳統方式 循環單條資料更新,更新每一條資料都要重新連接配接和斷開資料庫。(不推薦)
2、批量更新 一次資料庫連接配接中完成(推薦)
思路:首先來看需要生成的 SQL
UPDATE TABLE t
SET COLUMN = CASE t.whereColumn
WHEN a THEN 1
WHEN b THEN 2
WHEN c THEN 3
END
WHERE
t.whereColumn IN ( a,b,c )
需要生成的sql出來了, 那麼我們就根據這個sql照葫蘆畫瓢,改寫成mapper
<!--批量更新-->
<update id="updateBatch" parameterType="java.util.List">
UPDATE table t
<trim prefix="SET" suffixOverrides=",">
<trim prefix="column = CASE t.whereColumn" suffix="END,">
<foreach collection="list" item="item" index="index">
WHEN #{item.whereColumn} THEN #{item.column}
</foreach>
</trim>
</trim>
<where>
t.whereColumn IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.whereColumn}
</foreach>
</where>
</update>
以上是簡單的 單條件判斷,多條件則再寫幾個 case when end即可!~
随手記,有問題請留言!~~