MybatisPlus实现insertBatchSomeColumn进行批量增加

 更新时间:2023年03月17日 09:52:03   作者:林卓淇  
本文主要介绍了MybatisPlus实现insertBatchSomeColumn进行批量增加,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1、引入相关依赖

        <!--mybatis-plus启动器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
                <!--mybatis-plus扩展插件依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
            <version>3.5.1</version>
        </dependency>

2、编写sql注入器

package com.linmain.mysql.config;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;

import java.util.List;

/**
 * @Author linzhuoqi
 * @Date 2023/3/10
 * @Eamil 1580752420@qq.com
 * @Version
 * @Description    自定义的sql注入器,插入了批量插入的方法
 */
public class EasySqlInjector extends DefaultSqlInjector {
    @Override
    public List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) {

        // 注意:此SQL注入器继承了DefaultSqlInjector(默认注入器),调用了DefaultSqlInjector的getMethodList方法,保留了mybatis-plus的自带方法
        List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo);
        //增加了一个批量插入的方法
        methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
        return methodList;
    }
}

3、在mybatisPlus的配置类中注入插件

@Configuration
public class MyBatisPlusConfig {
 
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //添加分页插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        //添加乐观锁插件
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
 
    @Bean
    public EasySqlInjector easySqlInjector() {
        return new EasySqlInjector();
    }
 
}

4、编写dao层接口

package com.linmain.column.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.linmain.column.pojo.entity.ColTag;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * 专栏标签(ColTag)表数据库访问层
 *
 * @Author linzhuoqi
 * @Date 2023-03-02 20:44:38
 * @Eamil 1580752420@qq.com
 * @Version
 * @Description
 */
@Mapper
public interface ColTagDao extends BaseMapper<ColTag> {
    /**
     * 批量插入 仅适用于mysql
     *
     * @param entityList 实体列表
     * @return 影响行数
     */
    Integer insertBatchSomeColumn(Collection<ColTag> entityList);
}

5、最后

进行正常的使用即可

colTagDao.insertBatchSomeColumn(colTags);

到此这篇关于MybatisPlus实现insertBatchSomeColumn进行批量增加的文章就介绍到这了,更多相关MybatisPlus insertBatchSomeColumn批量增加内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 将本地的jar包打到Maven的仓库中实例

    将本地的jar包打到Maven的仓库中实例

    下面小编就为大家分享一篇将本地的jar包打到Maven的仓库中实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • JavaMail实现简单邮件发送

    JavaMail实现简单邮件发送

    这篇文章主要为大家详细介绍了JavaMail实现简单邮件发送,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Spring动态加载bean后调用实现方法解析

    Spring动态加载bean后调用实现方法解析

    这篇文章主要介绍了Spring动态加载bean后调用实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Java后端接入微信小程序登录功能(登录流程)

    Java后端接入微信小程序登录功能(登录流程)

    这篇文章主要介绍了Java后端接入微信小程序登录功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • SpringBoot3中token拦截器链的设计与实现步骤

    SpringBoot3中token拦截器链的设计与实现步骤

    本文介绍了spring boot后端服务开发中有关如何设计拦截器的思路,文中通过代码示例和图文讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-03-03
  • Java解决No enclosing instance of type PrintListFromTailToHead is accessible问题的两种方案

    Java解决No enclosing instance of type PrintListFromTailToHead

    这篇文章主要介绍了Java解决No enclosing instance of type PrintListFromTailToHead is accessible问题的两种方案的相关资料,需要的朋友可以参考下
    2016-07-07
  • 浅谈JVM系列之从汇编角度分析NullCheck

    浅谈JVM系列之从汇编角度分析NullCheck

    在virtual call中执行nullcheck的时候,如果已经知道传递的参数是非空的。JIT会对代码进行优化吗?本文将详细介绍JVM系列之从汇编角度分析NullCheck。
    2021-06-06
  • Java中的分布式事务Seata详解

    Java中的分布式事务Seata详解

    这篇文章主要介绍了Java中的分布式事务Seata详解,Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务,Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案,需要的朋友可以参考下
    2023-08-08
  • java 解析user-agent 信息

    java 解析user-agent 信息

    这篇文章主要介绍了java 解析http user-agent的信息的相关资料,需要的朋友可以参考下
    2016-07-07
  • MyBatis-Plus实现多数据源的示例代码

    MyBatis-Plus实现多数据源的示例代码

    这篇文章主要介绍了MyBatis-Plus实现多数据源的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论