springboot中整合pagehelper、mybatisplus(扩展批量插入)

springboot中整合pagehelper、mybatisplus(批量插入) ,需要扩展mybatisplus的BaseMapper。

1、pom继承spring-boot-starter-parent:2.1.7.RELEASE

2、项目pom.xml中pagehelper及mybatisplus依赖


    
        com.github.pagehelper
        pagehelper-spring-boot-starter
        1.2.10
        
            
                org.mybatis
                mybatis
            
            
                org.mybatis
                mybatis-spring
            
        
    

       
        
            com.baomidou
            mybatis-plus-boot-starter
            3.2.0
        

3、application.yml配置

#mybatsplus 配置
mybatis-plus:
  config-location: classpath:SqlMapConfig.xml

#分页插件
pagehelper:
  helperDialect: mysql 
  reasonable: false  #翻页直到最后,不重复翻页。
  supportMethodsArguments: false # 需要手动调用PageHelper.startPage() 开启分页
  params: count=countSql

SqlMapConfig.xml配置




  
    
    
    
    
    
  
  
    
  
  

4、扩展mybatisplus 

ExpandBaseMapper 扩展BaseMapper

package com.cbyzs.ssdemo.common.mplus;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.Collection;
public interface  ExpandBaseMapper extends BaseMapper {
 
    /**
     * 批量插入 仅适用于mysql
     * @param entityList 实体列表
     * @return 影响行数
     */
    Integer insertBatchSomeColumn(Collection entityList);
 
}

自定义ExpandSqlInjector 扩展DefaultSqlInjector

package com.cbyzs.ssdemo.common.mplus;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.extension.injector.methods.additional.InsertBatchSomeColumn;
import java.util.List;
  
public class ExpandSqlInjector extends DefaultSqlInjector {
 
    @Override
    public List getMethodList(Class mapperClass) {
        List methodList = super.getMethodList(mapperClass);
        methodList.add(new InsertBatchSomeColumn());
        return methodList;
    }
}

MybatisPlusConfig 配置类

package com.cbyzs.ssdemo.common.mplus;
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig  {
 
    @Bean
    public ExpandSqlInjector expandSqlInjector() {
        return new ExpandSqlInjector();
    }
 
}

自己的业务Mapper接口需改为继承ExpandBaseMapper ,业务service中调用mapper的insertBatchSomeColumn()方法即可实现增强的批量插入。

例如: 

Mapper层:

public interface CarRegMapper extends ExpandBaseMapper {

}

Service层方法:

 
    public void importData(List dataList) {
       //xxx
        carRegMapper.insertBatchSomeColumn(dataList);
    }

你可能感兴趣的:(java编程,mybatisplus,java)