Mybatis里Mapper.xml加强

批量插入
insert into user(user_id,name) values (1,'test0'),(2,'test1');

<!-- 批量插入 -->
<insert >
(#{item.userId},#{item.name})
</foreach>
</insert>

批量删除
delete from user where user_id in(1,2);
<!-- 批量删除 -->
<delete >
#{item}
</foreach>
</delete>

批量更新
①:循环更新,连接数据库N次,效率低
update user set name = 'test0' where user_id=1;update user set name = 'test1' where user_id =2;

<!-- 批量更新 -->
<update >
update user
<set>
name=#{name}
</set>
where user_id = #{item.userId}
</foreach>
</update>

②:循环更新,连接数据库一次,效率较高(case when的两种写法)
写法一:
update user set name = case user_id when 1 then 'test0' when 2 then 'test1' else name end where user_id in(1,2)

<update >
#{item.user_id}
</foreach>
</update>

写法二:
update user set name = case when user_id = 1 then 'test0' when user_id = 2 then 'test1' else name end where user_id in(1,2)

<update >
                 #{item.userId}
                 </foreach>
</update>