feat(uboot-core): mybatis-plus

新增Mysql Sql注入器以解决mybatis-plus中saveBatch方法无法批量插入Bug
This commit is contained in:
chuhang
2021-06-18 15:45:45 +08:00
parent 696e91b4ce
commit 4a980b6597
3 changed files with 55 additions and 0 deletions

View File

@ -1,8 +1,13 @@
package com.chinaunicom.mall.ebtp.core.config; package com.chinaunicom.mall.ebtp.core.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize; import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import com.chinaunicom.mall.ebtp.core.injector.MySqlInjector;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -14,6 +19,10 @@ import org.springframework.context.annotation.Configuration;
//@MapperScan(basePackages = "com.chinaunicom.mall.ebtp.**.dao") //@MapperScan(basePackages = "com.chinaunicom.mall.ebtp.**.dao")
public class MybatisPlusConfig { public class MybatisPlusConfig {
@Bean
public MySqlInjector sqlInjector() {
return new MySqlInjector();
}
/** /**

View File

@ -0,0 +1,23 @@
package com.chinaunicom.mall.ebtp.core.injector;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* @author K
* @since 2019/7/9
*/
public interface MyBaseMapper<T> extends BaseMapper<T> {
/**
* 批量插入
*
* @param entityList 数据集合
* @return int
* @author dino
* @date 2021/6/18 15:40
*/
int insertBatchSomeColumn(List<T> entityList);
}

View File

@ -0,0 +1,23 @@
package com.chinaunicom.mall.ebtp.core.injector;
import com.baomidou.mybatisplus.annotation.FieldFill;
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;
/**
* 自定义Sql注入
*
* @author nieqiurong 2018/8/11 20:23.
*/
public class MySqlInjector extends DefaultSqlInjector {
@Override
public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
List<AbstractMethod> methodList = super.getMethodList(mapperClass);
methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
return methodList;
}
}