Wondercease

浙ICP备2022017321号

MybatisPlus真正的批量插入

其实MybatisPlus提供了真正的批量插入方法,但是只适用于MYSQL,所以并没有放出来,需要自己去拓展一下。

第一步:

新建拓展类

import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;

import java.util.List;

/**

  • 拓展mybatisPlus 支持批量插入
    */
    @Component
    public class ExpandSqlInjector extends DefaultSqlInjector {
    @Override
    public List getMethodList(Class mapperClass) {
    List methodList = super.getMethodList(mapperClass);
    methodList.add(new InsertBatchSomeColumn());
    return methodList;

    }
    }

第二步:

创建新的baseMapper

package com.fuli.common.config;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.Collection;

/**

  • 真正实现批量插入的拓展接口
  • @param
    */
    public interface ExpandBaseMapper extends BaseMapper { /**
    • 批量插入 仅适用于mysql
      *
    • @param entityList 实体列表
    • @return 影响行数
      */
      Integer insertBatchSomeColumn(Collection entityList);
      }

第三步:

注入bean

@Configuration
@MapperScan(“com.xxx..mapper”)

public class MybatisPlusConfig {

/*
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor page = new PaginationInterceptor();
page.setOverflow(true);
page.setDbType(DbType.MYSQL);
return page;
}

@Bean
public ExpandSqlInjector expandSqlInjector() {
    return new ExpandSqlInjector();
}

}

第四步:

在自己的mapper中继承ExpandBaseMapper,调用insertBatchSomeColumn即可实现真正的批量插入。

发表评论

您的电子邮箱地址不会被公开。