其他分享
首页 > 其他分享> > mybatis-批量更新

mybatis-批量更新

作者:互联网

批量更新的语法是这样的,通过case when,来匹配id 相关的字段值。

update tbl_emp set
emp_name =
	case emp_id
		when ? then ?
		when ? then ?
		when ? then ? end ,
gender =
	case emp_id
		when ? then ?
		when ? then ?
		when ? then ? end ,
email =
	case emp_id
		when ? then ?
		when ? then ?
		when ? then ? end
where emp_id in ( ? , ? , ? )

所以在Mapper 文件里面最关键的就是case when 和where 的配置。

需要注意一下open 属性和separator 属性。

<update id="updateBatch">
	update tbl_emp set
	emp_name =
	<foreach collection="list" item="emps" index="index" separator=" " open="case emp_id"
		close="end">
		when #{emps.empId} then #{emps.empName}
	</foreach>
	,gender =
	<foreach collection="list" item="emps" index="index" separator=" " open="case emp_id"
		close="end">
		when #{emps.empId} then #{emps.gender}
	</foreach>
	,email =
	<foreach collection="list" item="emps" index="index" separator=" " open="case emp_id"
		close="end">
		when #{emps.empId} then #{emps.email}
	</foreach>
	where emp_id in
	<foreach collection="list" item="emps" index="index" separator="," open="("
		close=")">
		#{emps.empId}
	</foreach>
</update>

批量删除也是类似的。

 

标签:case,empId,批量,when,更新,emps,mybatis,id,emp
来源: https://blog.csdn.net/Leon_Jinhai_Sun/article/details/110732860