--批量插入
<insert id="saveUserList" parameterType="java.util.List">
insert into test
(id,name)
values
<foreach collection="list" item="user" separator=",">(
#{user.id},
#{user.name})</foreach></insert>
批量更新(使用方式一效率较高)
方式一:
<update id="batchUpdateUser" parameterType="java.util.Map">
update user t
set
pay_status=r.status,
updated_date =now(),
updated_by=#{paramMap.currentUser}
from (<foreach collection="paramMap.list" item="i" separator="union all">
select #{i.id}::text id,
#{i.status}::text status
</foreach>) r
where r.id=t.id
</update>
方式二:
<update id="batchUpdateUser">
update user
set name =<foreach collection="list" item="item" index="index"
separator=" " open="case ID" close="end">
when #{item.id} then
#{item.name}</foreach>
where id in
<foreach collection="list" item="item" index="index"
separator="," open="(" close=")">
#{item.id,jdbcType=VARCHAR}</foreach></update>
```