1.xml中書寫的方式
<update id="batchUpdate" parameterType="list"> update songs <trim prefix="set" suffixOverrides=","> <trim prefix="path =case" suffix="end,"> <foreach collection="list" item="i" index="index"> <if test="i.songid!=null"> when songid=#{i.songid} then #{i.path} </if> </foreach> </trim> </trim> where songid in <foreach collection="list" item="i" index="index" open="(" separator="," close=")"> #{i.songid} </foreach> </update>
2.Mapper中方法
void batchUpdate(List<Songs> recordList);
3.打印出來的sql格式
UPDATE songs SET path = CASE SONGID WHEN '10800537' THEN 'C:/songs/10800537.mpg' WHEN '10800118' THEN 'C:/songs/10800118.mpg' END WHERE SONGID IN ('10800537','10800118')