MyBatis-Plus 批量插入数据的操作方法


Posted in Java/Android onSeptember 25, 2021

spring boot+mybatis plus环境,单条插入用的是BaseMapper自带的insert方法

public ApiResult addAnc(Anc anc) {
        ApiResult result = new ApiResult();
      
        Integer insert = ancMapper.insert(anc);
        if (insert < 1) {
            return result.failed("发布失败,请联系管理员");
        }
        return result.success(anc);

BaseMapper未提供批量插入接口,但是在com.baomidou.mybatisplus.service.IService中提供了

/**
     * <p>
     * 插入(批量),该方法不适合 Oracle
     * </p>
     *
     * @param entityList 实体对象列表
     * @return boolean
     */
    boolean insertBatch(List<T> entityList);

    /**
     * <p>
     * 插入(批量)
     * </p>
     *
     * @param entityList 实体对象列表
     * @param batchSize  插入批次数量
     * @return boolean
     */
    boolean insertBatch(List<T> entityList, int batchSize);

使用方法,定义一个自己的接口,继承IService,泛型为被操作实体类

@Service
public  interface  WorkIService extends IService<CmpWork> {

}

定义一个实现类,实现上诉接口

@Service
public class WorkIServiceImpl extends ServiceImpl<WorkMapper, CmpWork> implements WorkIService{
}

其中WorkMapper为正常操作的mapper

在业务中测试批量插入操作

List<CmpWork> entityList = new ArrayList<>(1000);
		for (int i=1;i<10000;i++){
            CmpWork work = new CmpWork();
			work.setWorkName("workNametestBatch"+i);
			work.setWorkID("testBatch"+i);
            work.setCreTm(DateUtil.dateToYMDHMS(new Date()));
			entityList.add(work);
		}
		boolean b = workIService.insertBatch(entityList);

和单条插入的执行对比了一下,在1000条数据级别内,差别不大,批量操作的优势可能大数据环境下才能显现吧

到此这篇关于MyBatis-Plus 批量插入的文章就介绍到这了,更多相关MyBatis-Plus 批量插入内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
详解JAVA中的OPTIONAL
Jun 14 Java/Android
JPA如何使用entityManager执行SQL并指定返回类型
Jun 15 Java/Android
Java中使用Filter过滤器的方法
Jun 28 Java/Android
Spring Boot 实现敏感词及特殊字符过滤处理
Jun 29 Java/Android
用Java实现简单计算器功能
Jul 21 Java/Android
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
Jan 18 Java/Android
Java如何实现通过键盘输入一个数组
Feb 15 Java/Android
JVM的类加载器和双亲委派模式你了解吗
Mar 13 Java/Android
Spring事务管理下synchronized锁失效问题的解决方法
Mar 31 Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
Apr 24 Java/Android
SpringBoot使用AOP实现统计全局接口访问次数详解
Jun 16 Java/Android
一文搞懂Java中的注解和反射
Jun 21 Java/Android
spring cloud 配置中心native配置方式
Sep 25 #Java/Android
spring cloud 配置中心客户端启动遇到的问题
Sep 25 #Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
Sep 25 #Java/Android
java如何实现socket连接方法封装
Sep 25 #Java/Android
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
Java数据开发辅助工具Docker与普通程序使用方法
Sep 15 #Java/Android
使用springMVC所需要的pom配置
Sep 15 #Java/Android
You might like
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
Laravel下生成验证码的类
2017/11/15 PHP
DEFER怎么用?
2006/07/01 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
微信小程序(订阅消息)功能
2019/10/25 Javascript
用实例解释Python中的继承和多态的概念
2015/04/27 Python
python文件名和文件路径操作实例
2017/09/29 Python
深入理解Django的中间件middleware
2018/03/14 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
实例详解Python装饰器与闭包
2019/07/29 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
浅谈Python中的模块
2020/06/10 Python
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
什么是servlet链?
2014/07/13 面试题
中西医专业毕业生职业规划书
2014/02/24 职场文书
委托证明范本
2014/11/25 职场文书
预备党员自我评价范文
2015/03/04 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android