微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MybatisPlus如何实现insertBatchSomeColumn进行批量增加

本篇内容介绍了“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 [email protected]
 * @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 [email protected]
 * @Version
 * @Description
 */
@Mapper
public interface ColTagDao extends BaseMapper<ColTag> {
    /**
     * 批量插入 仅适用于MysqL
     *
     * @param entityList 实体列表
     * @return 影响行数
     */
    Integer insertBatchSomeColumn(Collection<ColTag> entityList);
}

5、最后

进行正常的使用即可

colTagDao.insertBatchSomeColumn(colTags);

“MybatisPlus如何实现insertBatchSomeColumn进行批量增加”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程之家网站,小编将为大家输出更多高质量的实用文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐