方法一:
<update id="updateList" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" separator=";">
UPDATE peopleplaninfo
<set>
<if test="item.workingform != null">
workingform = #{item.workingform},
</if>
<if test="item.starttime != null and item.starttime !=''">
starttime = #{item.starttime},
</if>
<if test="item.endtime != null and item.endtime !=''">
endtime = #{item.endtime},
</if>
<if test="item.salary != null">
salary = #{item.salary},
</if>
<if test="item.numberpeople != null">
numberpeople = #{item.numberpeople},
</if>
</set>
WHERE peopleplaninfoid = #{item.peopleplaninfoid}
</foreach>
</update>
不用验证也知道,这种sql 数据多就很尴尬了
方法二:
update takeplaneveryday
<trim prefix="set" suffixOverrides=",">
<trim prefix="es =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.takeplanid!=null">
when takeplanid=#{i.takeplanid} then #{i.es}
</if>
</foreach>
</trim>
<trim prefix="ef =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.takeplanid!=null">
when takeplanid=#{i.takeplanid} then #{i.ef}
</if>
</foreach>
</trim>
<trim prefix="ls =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.takeplanid!=null">
when takeplanid=#{i.takeplanid} then #{i.ls}
</if>
</foreach>
</trim>
<trim prefix="lf =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.takeplanid!=null">
when takeplanid=#{i.takeplanid} then #{i.lf}
</if>
</foreach>
</trim>
</trim>
where takeplanid in
<foreach collection="list" item="i" index="index" open="(" separator="," close=")">
#{i.takeplanid}
</foreach>
方法二,觉得会比方法一要快点,但没试
有别的方法请留言,一起进步