方式一、
<update id="updateBatch" parameterType="List">
update USER
<trim prefix="set" suffixOverrides=",">
<trim prefix="USER_NAME = case USER_GUID" suffix="end,">
<foreach collection="users" item="user" index="index">
<if test="user.userName != null and user.userName != ''">
when #{user.userGuid} then #{user.userName}
</if>
</foreach>
</trim>
<trim prefix="USER_SEX = case USER_GUID" suffix="end,">
<foreach collection="users" item="user" index="index">
<if test="user.userSex != null">
when #{user.userGuid} then #{user.userSex}
</if>
</foreach>
</trim>
</trim>
<!-- 需限定范围,否则会把其他内容设置为空 -->
where USER_GUID in
<foreach collection="users" item="user" open="(" separator="," close=")">
#{user.userGuid}
</foreach>
</update>
方式二、
<update id="updateBatch">
begin
<foreach collection="users" separator=";" item="user">
update USER
<trim prefix="set" suffixOverrides="," suffix="WHERE USER_GUID=#{user.userGuid, jdbcType=VARCHAR}" >
<if test="user.userName!=null and user.userName !=''">
USER_NAME=#{user.userName, jdbcType=VARCHAR},
</if>
<if test="user.userSex != null">
USER_SEX=#{user.userSex, jdbcType=INTEGER},
</if>
</trim>
</foreach>
;end;
</update>