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

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

public  interface  WorkIService extends IService<CmpWork> {
} 

其中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条数据级别内,差别不大,批量操作的优势可能大数据环境下才能显现吧!

目录
相关文章
|
14天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
15 0
|
1月前
|
Java 关系型数据库 数据库连接
MyBatis Plus 解决大数据量查询慢问题
MyBatis Plus 解决大数据量查询慢问题
|
4月前
|
SQL 数据库
MyBatisPlus-null判定及查询指定字段
MyBatisPlus-null判定及查询指定字段
233 0
|
4月前
|
SQL Java 数据库连接
MyBatisPlus-聚合查询、分组查询及等值查询
MyBatisPlus-聚合查询、分组查询及等值查询
181 0
|
30天前
|
SQL 存储 Kubernetes
Seata常见问题之mybatisplus的批量插入方法报SQL错误如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
26 0
|
1月前
|
SQL Java 数据库连接
Mybatis查询的时候BigDecimal类型的值查询失效的解决办法
Mybatis查询的时候BigDecimal类型的值查询失效的解决办法
|
1月前
|
缓存 Java 数据库连接
MyBatis Plus的“幻查” 规范到底要怎样使用哪几个查询函数 为什么会出现幻查?还有幻删为什么会删不掉
MyBatis Plus的“幻查” 规范到底要怎样使用哪几个查询函数 为什么会出现幻查?还有幻删为什么会删不掉
|
1月前
|
SQL Java 关系型数据库
【MyBatis】3、一文介绍如何用 MyBatis 进行多表级联查询
【MyBatis】3、一文介绍如何用 MyBatis 进行多表级联查询
51 0