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 相关文章推荐
Win10系统下配置Java环境变量
Jun 13 Java/Android
SpringCloud的JPA连接PostgreSql的教程
Jun 26 Java/Android
springboot拦截器无法注入redisTemplate的解决方法
Jun 27 Java/Android
分析ZooKeeper分布式锁的实现
Jun 30 Java/Android
Java 语言中Object 类和System 类详解
Jul 07 Java/Android
springboot集成springCloud中gateway时启动报错的解决
Jul 16 Java/Android
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
Jul 26 Java/Android
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
Mar 21 Java/Android
springboot应用服务启动事件的监听实现
Apr 06 Java/Android
详解Flutter网络请求Dio库的使用及封装
Apr 14 Java/Android
详解Flutter自定义应用程序内键盘的实现方法
Jun 14 Java/Android
Java代码规范与质量检测插件SonarLint的使用
Aug 05 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实现的下载css文件中的图片的代码
2010/02/08 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
JsChart组件使用详解
2018/03/04 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
Python3监控疫情的完整代码
2020/02/20 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
煤矿班组长岗位职责
2013/12/29 职场文书
中学生评语大全
2014/04/18 职场文书
小学一年级评语大全
2014/04/22 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
新郎接新娘保证书
2015/05/08 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL