当前位置: 首页 > news >正文

mybatis-plus实现真正的批量插入

1、安装依赖

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.5.3.2</version></dependency>

版本与mybatis-plus一致
2、编写sql注入器

package com.example.answer_system.config;import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;import java.util.List;public class EasySqlInjector extends DefaultSqlInjector {@Overridepublic List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) {// 注意:此SQL注入器继承了DefaultSqlInjector(默认注入器),调用了DefaultSqlInjector的getMethodList方法,保留了mybatis-plus的自带方法List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo);methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));return methodList;}
}

3、注入插件

package com.example.answer_system.config;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MyBatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}//插件,用于批量插入真正的@Beanpublic EasySqlInjector easySqlInjector() {return new EasySqlInjector();}
}

4、编写自己的mapper继承BaseMapper

package com.example.answer_system.base;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import java.util.Collection;public interface BasePlusMapper <T> extends BaseMapper<T> {//真正的批量插入Integer insertBatchSomeColumn(Collection<T> entityList);
}

5、代码中使用,实体类的mapper继承自己编写的BasePlusMapper
在代码中使用时
baseMapper.insertBatchSomeColumn(list);则可实现真正的批量插入

http://www.lryc.cn/news/278358.html

相关文章:

  • pytorch12:GPU加速模型训练
  • P1603 斯诺登的密码题解
  • YOLOv8 + openVINO 多线程数据读写顺序处理
  • 端到端自动驾驶
  • Developer Tools for Game Creator 1
  • 软件测试|好用的pycharm插件推荐(三)——Rainbow Brackets
  • MyBatisPlus学习二:常用注解、条件构造器、自定义sql
  • 深入理解C#中的引用类型、引用赋值以及 `ref` 关键字
  • 【算法提升】LeetCode每五日一总结【01/01--01/05】
  • linux下驱动学习—平台总线 (3)
  • 【leetcode】字符串中的第一个唯一字符
  • Serverless与Kubernetes(K8s)的区别、优缺点及应用场景
  • 参数小,性能强!开源多模态模型—TinyGPT-V
  • C++系列十五:字符串
  • 你了解计算机网络的发展历史吗?
  • Qt/QML编程学习之心得:Linux下Thread线程创建(26)
  • 如何在数学建模竞赛中稳定拿奖
  • Camunda Sub Process
  • golang 生成一年的周数
  • 植物大战僵尸-C语言搭建童年游戏(easyx)
  • c++学习:容器list实战(获取目录返回容器list)
  • 【Linux】Linux系统编程——Linux目录结构
  • 卫星时钟服务器、NTP时钟服务器、GPS北斗网络时钟系统
  • 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft
  • 全网第一篇教你怎么总结多线程知识
  • Mondo备份linux操作系统为iso镜像 —— 筑梦之路
  • 《微信小程序开发从入门到实战》学习七十八
  • React 入门 - 05(响应式与事件绑定)
  • 【APACHE】的认识和基础配置参数
  • 英飞凌TC3xx之一起认识GTM(九)GTM相关知识简述及应用实例(CMU,CCM,TBU,MON)