Mybatis中实现批量更新的几种姿势,总有一款适合你
Mybatis中实现批量更新的几种姿势,总有一款适合你一、概述mybatis中实现批量插入是很简单的,相比大家都知道,这里就不赘述,本文主要讲述如何实现批量更新。下面介绍本文要讲的几种方式主要是在xml中实现,不包含需要改动代码逻辑的方法,这里,除了网上说的普通情况,还有适合mysql的批量更新方式:casewhenforeach成多条sqlONDUPLICATEKEYUPDATE(mysql)r
Mybatis中实现批量更新的几种姿势,总有一款适合你
一、概述
mybatis中实现批量插入是很简单的,相比大家都知道,这里就不赘述,本文主要讲述如何实现批量更新。
下面介绍本文要讲的几种方式主要是在xml中实现,不包含需要改动代码逻辑的方法,这里,除了网上说的普通情况,还有适合mysql的批量更新方式:
case when
foreach成多条sql
ON DUPLICATE KEY UPDATE (mysql)
replace into (mysql)
这次,我要讲的就是这四种方式。
二、case when
这种方式实现的批量更新操作效率很低,而且,当更新的字段很多时,SQL语句会特别长。
<update id="updateBatch">
update t_calendar_extend <trim prefix="set" suffixOverrides=",">
<trim prefix="modify_time = case index" suffix="end,">
<foreach collection="list" item="item">
when #{item.index} then #{item.modifyTime} </foreach>
</trim>
<trim prefix="user_type = case index" suffix="end">
<foreach collection="list" item="item">
when #{item.index} then #{item.type} </foreach>
</trim>
</trim>
<where>
index in ( <foreach collection="list" separator="," item=原创不易,完成人机校验,阅读全文