mybatis-plus 当前我用的最新版本

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version>
</dependency>

找到这里我不用多说了,mybatis-plus源码的批量插入和修改是通过for循环转化为多条的单条SQL循环进行插入和修改,所以该方法是SQL拼接成一条SQL传入数据库

批量插入:

package com.guide.common.mybatis.mapper;import java.util.List;/*** @author * @version 1.0* @date 2022/5/6 10:34*/
public interface SpiceBaseMapper<T> {/*** 批量插入* {@link com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn}** @param entityList 要插入的数据* @return 成功插入的数据条数*/int insertBatchSomeColumn(List<T> entityList);}
package com.guide.common.mybatis.mapper;import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.extension.injector.methods.AlwaysUpdateSomeColumnById;
import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
import org.springframework.stereotype.Component;import java.util.List;/*** @author * @version 1.0* @date 2022/5/6 10:28*/
@Component
public class SpiceSqlInjector extends DefaultSqlInjector {/*** 如果只需增加方法,保留mybatis plus自带方法,* 可以先获取super.getMethodList(),再添加add*/@Overridepublic List<AbstractMethod> getMethodList(Class<?> mapperClass) {// 注意:此SQL注入器继承了DefaultSqlInjector(默认注入器),调用了DefaultSqlInjector的getMethodList方法,保留了mybatis-plus的自带方法List<AbstractMethod> methodList = super.getMethodList(mapperClass);// 注入InsertBatchSomeColumn// 在!t.isLogicDelete()表示不要逻辑删除字段,!"update_time".equals(t.getColumn())表示不要字段名为 update_time 的字段,不对进行操作// methodList.add(new InsertBatchSomeColumn(t -> !t.isLogicDelete() && !"update_time".equals(t.getColumn())));// 要逻辑删除 t.isLogicDelete() 默认不要methodList.add(new InsertBatchSomeColumn(t -> !t.isLogicDelete()));return methodList;}
}

记住Java是可以接口多继承的

mybatis-plus 批量添加相关推荐

  1. springboot执行批量插入_springboot+Mybatis 注解\Xml两种方式批量添加数据

    1.使用注解的方式批量添加数据,在该方法中,传进来的参数是一个List集合,使用一个foreach 循环解析集合的数据,最后再批量保存到数据库,具体如下截图: 代码如下: //批量保存 @Insert ...

  2. mybatis plus 批量更新数据_Mybatis 多字段组合唯一 并批量添加不重复数据

    前言 现在,普遍的关系型数据库开发都离不开 mybatis 这个优秀的持久层框架.而在普遍的业务场景中,也时常会有短时间内高频次的增删操作.这样短时间内高频次的操作,通常有两种实现方案,第一种是比较常 ...

  3. mybatis批量添加

    接口传入集合,在mybatis里面实现批量插入 <insert id="insert" parameterType="list" >insert i ...

  4. Mybatis批量添加对象List

    1.对应的xml文件: <!--批量添加--><insert id="insertStandardItemInfo" parameterType="ha ...

  5. mybatis 批量添加 过滤库里已有数据

    <!-- 批量添加货位 --> <insert id="addBatch" parameterType="java.util.List" &g ...

  6. mybatis批量添加案例

    很多小伙伴在批量添加的时候容易混乱,这里写一个例子供参考 Mapper层[加上@param注解,里面取一个别名] public int batchInsertAppUserList(@Param(&q ...

  7. Mybatis 如何批量删除数据

    Mybatis如何批量删除数据 本期以最常用的根据id批量删除数据为例: 接口设计1:List类型单参数 Integer deleteByIds(List<Integer> ids); 接 ...

  8. Mysql表批量添加字段

    在 MySQL 中,可以使用 ALTER TABLE 语句来添加表字段.以下是一些示例代码,可以批量添加多个字段: 1 mysql表批量添加字段 1.1 添加单个字段 ALTER TABLE `tab ...

  9. EF 批量 添加 修改 删除

    1批量添加    db.T_Investigator.AddRange(list) 2批量删除    db.T_Investigator.RemoveRange(list) 3批量修改   for 循 ...

  10. linux小脚本批量添加/删除用户

    批量添加/删除用户,当输入add时,判断用户是否存在,存在则显示存在,不存在则添加:当输入del时,判断用户是否存在,存在则删除用户,不存在则显示不存在. #!/bin/bash if [ $1 == ...

最新文章

  1. vs2012下编码引起的一个神坑
  2. Effective C++ --6 继承与面向对象设计
  3. asp mysql 更新数据_Asp更新数据库的几种方法
  4. spring storedProcedure 使用
  5. TreeSet集合中的自定义比较器
  6. sys python3 常用_python之sys模块【获取参数】
  7. Unity+NGUI多分辨率适配方案
  8. Navicat实用功能:数据备份与结构同步
  9. 提高Eclipse的运行速度 去掉JPA这个Eclipse 插件
  10. 使用Dependency Walker对模块进行故障排除
  11. EFUCMSE16小说漫画系统搭建教程
  12. Basic4IOS B4I开发原生iOS,Visual Studio中编程
  13. 取模运算和求余运算的区别
  14. SpringBoot项目打包成jar后,使用ClassPathResource获取classpath(resource)下文件失败
  15. MybatisPlus整合SpringBoot全教程,用起来不要太方便
  16. Mybatis中的类型转换器
  17. python写乘法口诀表好记方法_乘法口诀表好记方法
  18. 统计英文字数c语言,用C语言作纯英文字数统计
  19. Matlab中feedback函数的用法
  20. 清除浏览器操作—JavaWeb网页刷新

热门文章

  1. C#基础系列08 - NTLM 基础学习
  2. Handlebar嵌套遍历数据
  3. JVM:类的加载过程
  4. python 生成对抗网络
  5. 关于JoinPoint和ProceedingJoinPoint区别
  6. 【游戏逆向】一款单机游戏明文包分析
  7. 领域驱动设计基础-《复杂软件设计之道:领域驱动设计全面解析与实战》笔记 - 1
  8. QVariant可以存储的QPolygonF吗?
  9. QVariant保存指针
  10. Ubuntu 16.04 amd64架构下安装使用i386程序动态链接库依赖