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

其他教程   发布日期:2023年09月06日   浏览次数:531

本篇内容介绍了“MybatisPlus如何实现insertBatchSomeColumn进行批量增加”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、引入相关依赖

  1. <!--mybatis-plus启动器-->
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>mybatis-plus-boot-starter</artifactId>
  5. <version>3.5.1</version>
  6. </dependency>
  7. <!--mybatis-plus扩展插件依赖-->
  8. <dependency>
  9. <groupId>com.baomidou</groupId>
  10. <artifactId>mybatis-plus-extension</artifactId>
  11. <version>3.5.1</version>
  12. </dependency>

2、编写sql注入器

  1. package com.linmain.mysql.config;
  2. import com.baomidou.mybatisplus.annotation.FieldFill;
  3. import com.baomidou.mybatisplus.core.injector.AbstractMethod;
  4. import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
  5. import com.baomidou.mybatisplus.core.metadata.TableInfo;
  6. import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
  7. import java.util.List;
  8. /**
  9. * @Author linzhuoqi
  10. * @Date 2023/3/10
  11. * @Eamil 1580752420@qq.com
  12. * @Version
  13. * @Description 自定义的sql注入器,插入了批量插入的方法
  14. */
  15. public class EasySqlInjector extends DefaultSqlInjector {
  16. @Override
  17. public List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) {
  18. // 注意:此SQL注入器继承了DefaultSqlInjector(默认注入器),调用了DefaultSqlInjector的getMethodList方法,保留了mybatis-plus的自带方法
  19. List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo);
  20. //增加了一个批量插入的方法
  21. methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
  22. return methodList;
  23. }
  24. }

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

  1. @Configuration
  2. public class MyBatisPlusConfig {
  3. @Bean
  4. public MybatisPlusInterceptor mybatisPlusInterceptor(){
  5. MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
  6. //添加分页插件
  7. interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
  8. //添加乐观锁插件
  9. interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
  10. return interceptor;
  11. }
  12. @Bean
  13. public EasySqlInjector easySqlInjector() {
  14. return new EasySqlInjector();
  15. }
  16. }

4、编写dao层接口

  1. package com.linmain.column.dao;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.linmain.column.pojo.entity.ColTag;
  4. import org.apache.ibatis.annotations.Mapper;
  5. import org.apache.ibatis.annotations.Param;
  6. import java.io.Serializable;
  7. import java.util.Collection;
  8. import java.util.List;
  9. /**
  10. * 专栏标签(ColTag)表数据库访问层
  11. *
  12. * @Author linzhuoqi
  13. * @Date 2023-03-02 20:44:38
  14. * @Eamil 1580752420@qq.com
  15. * @Version
  16. * @Description
  17. */
  18. @Mapper
  19. public interface ColTagDao extends BaseMapper<ColTag> {
  20. /**
  21. * 批量插入 仅适用于mysql
  22. *
  23. * @param entityList 实体列表
  24. * @return 影响行数
  25. */
  26. Integer insertBatchSomeColumn(Collection<ColTag> entityList);
  27. }

5、最后

进行正常的使用即可

  1. colTagDao.insertBatchSomeColumn(colTags);

以上就是MybatisPlus如何实现insertBatchSomeColumn进行批量增加的详细内容,更多关于MybatisPlus如何实现insertBatchSomeColumn进行批量增加的资料请关注九品源码其它相关文章!