首页 > 其他分享 >mybatis-plus扩展extend批量操作(自带批量操作是循环单条插入,效率太低)

mybatis-plus扩展extend批量操作(自带批量操作是循环单条插入,效率太低)

时间:2023-06-05 14:34:24浏览次数:41  
标签:return methodList extend 批量 plus new public


目录

添加依赖

构建三个配置-推荐放一个包里面

让原本继承BaseMapper<实体>的Dao层改为继承EasyBaseMapper<实体>

service层已经可以使用批量操作了


 

添加依赖

<!--mybatis-plus组件-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <!--mybatis-plus扩展组件(需要扩展批量操作接口)-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
            <version>3.4.2</version>
        </dependency>

构建三个配置-推荐放一个包里面

/**
 * 扩展通用 Mapper,支持数据批量插入
 *
 * @author sunziwen
 */
public interface EasyBaseMapper<T> extends BaseMapper<T> {
    /**
     * 批量插入 仅适用于mysql
     *
     * @param entityList 实体列表
     * @return 影响行数
     */
    Integer insertBatchSomeColumn(Collection<T> entityList);
}
/**
 * 支持自定义数据方法注入
 *
 * @author sunziwen
 */
public class EasySqlInjector extends DefaultSqlInjector {
    @Override
    public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
        /*防止父类方法无法使用*/
        List<AbstractMethod> methodList = super.getMethodList(mapperClass);
        methodList.add(new InsertBatchSomeColumn());
        return methodList;
    }
}
@Configuration
public class MybatisPlusConfig {
    /**
     * 分页插件
     *
     * @return PaginationInterceptor
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

    @Bean
    public EasySqlInjector easySqlInjector() {
        return new EasySqlInjector();
    }
}

让原本继承BaseMapper<实体>的Dao层改为继承EasyBaseMapper<实体>

service层已经可以使用批量操作了

  • 完工!如有问题咨询博主V:sunziwen3366

标签:return,methodList,extend,批量,plus,new,public
From: https://blog.51cto.com/u_14121041/6415445

相关文章

  • 在electron项目如何引入element-plus开发
    安装element-plusnpminstallelement-plus--save按需引入插件npminstall-Dunplugin-vue-componentsunplugin-auto-import配置文件修改由于我这个是vue-cli搭建的项目,所以是在vue.config.js中,如果是vite搭建的话就写在vite.config.ts中写:1constAutoImpor......
  • mybatis-plus 批量插入方法saveBatch 踩坑
    1、问题描述由于我在数据库的一张表设置了两个主键,所以创建的实体我想都加上@TableId注解但是这样在mybatis-plus中一个实体只能有一个@TableId注解标识的主键2、然后我在批量插入时就遇到了问题,我使用的saveBatch方法进行的批量插入,在插入时实体的两个id我都设置值了,但是......
  • 【cpluplus教程翻译】类型转换(Type conversions)
    隐式类型转换(implicitconversion)如果一个值被拷贝到另一个兼容类型中,隐式类型转换会自动执行(注意对象指针引用的区别)。比如shorta=2000;intb;b=a;a的值从short被提升到int,这个过程不需要显式的转换,这被称为标准转换(standardconversion),标准转换针对的是基础数据类型,数......
  • spring整合mybatisplus
    配置文件注解配置mapper扫描:@MapperScan("com.bjsxt.mybatisplus_lombok_swagger.mapper")pom<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--mybatisp......
  • Excel批量插入图片(Excel函数集团)
    批量插入图片,归函数集团管了?对,你没看错,就是函数集团的活!因为Microsoft365出了一个新函数:IMAGE!所以,以前折腾的那种一堆合并以后再贴进txt文本文件再贴回来的,没用了?是与不是,我们用实例来说话! ***一条不算太华丽的分割线***准备工作1:一堆图片图片还是那个图片,但保存的位置却不是那个......
  • 产品介绍:普加甘特图PlusGantt
    PlusGantt是一款先进的项目管理中间件,旨在帮助项目团队高效地规划、执行和监控项目。它集成了强大的功能和直观的用户界面,为项目管理人员和团队成员提供了全面的工具来实现项目的成功交付。主要特点:智能Gantt图:PlusGantt提供了智能的Gantt图功能,以直观的方式展示项目的时间计划和进......
  • 【转】sqlplus/RMAN/lsnrctl 等工具连接缓慢
    AIX上sqlplus/assysdbarmantarget/或者lsnrctlstart时或者通过sqlplussystem/oracle@orcl这样通过监听连接等方式来登陆时非常慢(LINUX/HP-UX也存在此问题),甚至要5分钟、10分钟左右才能进入。这种问题在排除系统资源如CPU/IO/内存、网络等资源紧张外;经常是因为hostname......
  • 使用 HTTP Boot,可以批量部署操作系统和软件,提高管理效率和降低成本。下面是常用的几种
    使用HTTPBoot,可以批量部署操作系统和软件,提高管理效率和降低成本。下面是常用的几种批量部署方案:使用WindowsDeploymentServices(WDS):WDS是一种基于微软技术的网络引导服务,可以快速部署Windows操作系统和应用程序。通过配置WDS服务器和映像文件,可以实现从远程服务器引......
  • mybatis批量更新和踩坑总结
    1.mybatis批量更新示例:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.cars.ic......
  • MybatisPlus02_IService和各种插件
    前言上次忘了把application.yml放出来,以至于没有配置日志,log-impl后面的值表示输出日志到控制台。mybatis-plus:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:id-type:automapper-locations:c......