MYBATIS

Mybatis中实现批量更新的几种姿势,总有一款适合你

Mybatis中实现批量更新的几种姿势,总有一款适合你一、概述mybatis中实现批量插入是很简单的,相比大家都知道,这里就不赘述,本文主要讲述如何实现批量更新。下面介绍本文要讲的几种方式主要是在xml中实现,不包含需要改动代码逻辑的方法,这里,除了网上说的普通情况,还有适合mysql的批量更新方式:casewhenforeach成多条sqlONDUPLICATEKEYUPDATE(mysql)r

Mybatis中实现批量更新的几种姿势,总有一款适合你

一、概述

mybatis中实现批量插入是很简单的,相比大家都知道,这里就不赘述,本文主要讲述如何实现批量更新。

下面介绍本文要讲的几种方式主要是在xml中实现,不包含需要改动代码逻辑的方法,这里,除了网上说的普通情况,还有适合mysql的批量更新方式:

  1. case when

  2. foreach成多条sql

  3. ON DUPLICATE KEY UPDATE (mysql)

  4. 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=

原创不易,完成人机校验,阅读全文

相关推荐