Mybatis foreach批量修改多字段语句

一、條件批量:

<update id="updateBusinessIdByUuid" parameterType="map">
    UPDATE 
	    attachment 
    SET 
	    business_id=#{businessId}
    WHERE 
	    uuid in
	    <foreach close=")" collection="list" item="item" open="(" separator=",">
		      #{item}
	    </foreach>
  </update>

二、多個語句(拼接多條語句):
這個需要修改数据库连接配置:&allowMultiQueries=true

<update id="updateList" parameterType="java.util.List">
		<foreach collection="list" item="bean" index="index" open="" close="" separator=";">
			UPDATE 
				elderinfo 
			<set>
				age = #{bean.age}
			</set>	 
			WHERE 
				id=#{bean.id}
		</foreach>
	</update>

**三、只執行一次(效率高):

使用的是case…when…then…end 拼接

prefix:在trim标签内sql语句加上前缀。
suffix:在trim标签内sql语句加上后缀。
suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。
prefixOverrides:指定去除多余的前缀内容

<update id="batchUpdate" parameterType="map">
  	update 
	  	policy_catalogue_header 
  	<trim prefix="set" suffixOverrides=",">
  		<trim prefix="name = case" suffix="end,">
  			<foreach collection="list" item="item" index="index">
  				when 
	  				id = #{item.headerId} 
  				then 
	  				#{item.headerName}
  			</foreach>
  		</trim>
  	</trim>
  	where 
	  	id in 
	  	<foreach collection="list" index="index" item="item" separator="," open="(" close=")">
	  		#{item.headerId}
	  	</foreach>
  </update>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值