开发者

MybatisPlus实现insertBatchSomeColumn进行批量增加

开发者 https://www.devze.com 2023-03-17 10:34 出处:网络 作者: 林卓淇
目录1、引入相关依赖2、编写sql注入器3、在myBATisPlus的配置类中注入插件4、编写dao层接口5、最后1、引入相关依赖
目录
  • 1、引入相关依赖
  • 2、编写sql注入器
  • 3、在myBATisPlus的配置类中注入插件
  • 4、编写dao层接口
  • 5、最后

1、引入相关依赖

    <!--mybatis-plus启动器-->
    <dependency>
      <groupId>com.baomidou</groupId>ZsKCAnOpr;
      <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.Ab编程客栈stractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mphpybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;

import Java.util.List;

/**
* @Author linzhuoqi
* @Date 2023/3/10
* @Eamil 158075242js0@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(http://www.devze.comnew 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 实体列表
 开发者_JS学习 * @return 影响行数
  */
  Integer insertBatchSomeColumn(Collection<ColTag> entityList);
}

5、最后

进行正常的使用即可

colTagDao.insertBatchSomeColumn(colTags);

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

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号