千家信息网

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

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章将为大家详细讲解有关MyBatis-Plus批量插入数据的操作方法是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。spring boot
千家信息网最后更新 2025年01月31日MyBatis-Plus批量插入数据的操作方法是怎样的

这篇文章将为大家详细讲解有关MyBatis-Plus批量插入数据的操作方法是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

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中提供了

 /**     * 

* 插入(批量),该方法不适合 Oracle *

* * @param entityList 实体对象列表 * @return boolean */ boolean insertBatch(List entityList); /** *

* 插入(批量) *

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

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

@Servicepublic  interface  WorkIService extends IService {}

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

@Servicepublic class WorkIServiceImpl extends ServiceImpl implements WorkIService{}

其中WorkMapper为正常操作的mapper

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

List 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批量插入数据的操作方法是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0