Java 动态sql一条语句实现批量修改
- DAO层
Integer updateUserList( @Param(value = "list") List<Integer> userIdList);
2.xml语句
<update id="updateUserList">
UPDATE user_info
<trim prefix="set" suffixOverrides=",">
<trim prefix="age=case" suffix="end,">
<foreach collection="list" item="cus">
WHEN user_id =#{
cus.userId} THEN #{
cus.age}
</foreach>
</trim>
<trim prefix="address=case" suffix="end,">
<foreach collection="list" item="cus">
WHEN user_id =#{
cus.userId} THEN #{
cus.address}
</foreach>
</trim>
</trim>
<where>
<foreach collection="list" separator="or" item="cus">
user_id =#{
cus.userId}
</foreach>
</where>
</update>
3.执行输出
UPDATE user_info SET age = CASE WHEN user_id = 30069 THEN 18 WHEN user_id = 30068 THEN 20 END, address = CASE WHEN user_id = 30069 THEN 浙江杭州 WHEN user_id = 30068 THEN 四川成都 END WHERE user_id = 30069 OR user_id = 30068
