批量新增两种方式:
①:使用case when end形式
update capital_invoice_item set status= case id then 1 then 11 case id then 2 then 22 end where id in (1,2) UPDATE capital_invoice_item <trim prefix="set" suffixOverrides=","> <trim prefix="status= case id" suffix="end,"> <foreach collection="list" item="item"> <if test="item.status != null"> WHEN #{item.id} then #{item.status} </if> </foreach> </trim> </trim> WHERE id IN <foreach collection="list" item="item" open="(" close=")" separator=","> #{item.id} </foreach>prefix:前缀
suffixOverrides:去掉最后一个","
suffix:后缀
foreach:循环标签
collection:需要迭代的内容
item表示集合中每一个元素进行迭代时的别名,
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,
open表示该语句以什么开始, separator表示在每次进行迭代之间以什么符号作为分隔 符,
close表示以什么结束
②:循环插入
<update id=""> <foreach collection="list" item="item"> UPDATE bill_files set a= #{item.aa}, b = #{item.bb} WHERE .... </foreach> </update>