mybatis批量更新数据
sql写法:UPDATE user_tableSET user_name= CASE idWHEN 1 THEN '张三'WHEN 2 THEN '李四'WHEN 3 THEN '王二'ENDWHERE id IN (1,2,3)更新多个字段:UPDATE user_...
·
sql写法:
UPDATE user_table
SET user_name= CASE id
WHEN 1 THEN '张三'
WHEN 2 THEN '李四'
WHEN 3 THEN '王二'
END
WHERE id IN (1,2,3)
更新多个字段:
UPDATE user_table
SET user_name= CASE id
WHEN 1 THEN '张三'
WHEN 2 THEN '李四'
WHEN 3 THEN '王二'
END,
SET user_card= CASE id
WHEN 1 THEN '001'
WHEN 2 THEN '002'
WHEN 3 THEN '003'
END
WHERE id IN (1,2,3)
WHERE id IN (1,2,3)不写也可以执行,在这里可以提升sql性能,避免全表扫描
mybatis写法:
mapper.java:
void updateUser(@Param("list") List<User> userList);
xml:
<update id="updateUser" parameterType="java.util.List">
update user_table
<trim prefix="set" suffixOverrides=",">
<trim prefix="user_name=case" suffix="end,">
<foreach collection="list" item="item" index="index">
when id=#{item.id} then #{item.userName}
</foreach>
</trim>
</trim>
where id in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
更新多个字段
<update id="updateUser" parameterType="java.util.List">
update user_table
<trim prefix="set" suffixOverrides=",">
<trim prefix="user_name=case" suffix="end,">
<foreach collection="list" item="item" index="index">
when id=#{item.id} then #{item.userName}
</foreach>
</trim>
<trim prefix="user_card=case" suffix="end,">
<foreach collection="list" item="item" index="index">
when id=#{item.id} then #{item.userCard}
</foreach>
</trim>
</trim>
where id in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)