springboot中整合pagehelper、mybatisplus(批量插入) ,需要扩展mybatisplus的BaseMapper。
1、pom继承spring-boot-starter-parent:2.1.7.RELEASE
2、项目pom.xml中pagehelper及mybatisplus依赖
<!--pageHelper 分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
3、application.yml配置
#mybatsplus 配置 mybatis-plus: config-location: classpath:SqlMapConfig.xml #分页插件 pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql
SqlMapConfig.xml配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 启动延迟加载 积极加载false --> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="false"/> <!-- mapper中带下划线字段可映射为bean中对应驼峰格式的属性--> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <mappers> <package name="com.cbyzs.ssdemo"/> </mappers> </configuration>
4、扩展mybatisplus
ExpandBaseMapper 扩展BaseMapper
package com.cbyzs.ssdemo.common.mplus; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.Collection; public interface ExpandBaseMapper<T> extends BaseMapper<T> { /** * 批量插入 仅适用于mysql * @param entityList 实体列表 * @return 影响行数 */ Integer insertBatchSomeColumn(Collection<T> 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<AbstractMethod> getMethodList(Class<?> mapperClass) { List<AbstractMethod> 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<CarReg> {
}
Service层方法:
public void importData(List<CarReg> dataList) {
//xxx
carRegMapper.insertBatchSomeColumn(dataList);
}
Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1