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