背景:提供的insertBatch是假批量,重复的IO连接与断开效率极低,提供了insertBatchSomeColumn真批量需要自己手动配置
直接上代码:
public interface MyMapper<T> extends BaseMapper<T> {
/**
* 默认批次提交数量
*/
int DEFAULT_BATCH_SIZE = 1000;
/**
* 批量新增数据,自选字段 insert. 自动按每批1000插入数据库
* 此填充不会填充 FieldFill.UPDATE 的字段。
* 注意数据库默认更新的字段也需要手工设置
*
* @param entityList 数据
* @return 插入条数
*/
@Transactional(rollbackFor = Exception.class)
default int insertBatch(List<T> entityList) {
return this.insertBatchSomeColumn(entityList, DEFAULT_BATCH_SIZE);
}
/**
* 批量新增数据,自选字段 insert
* 不会分批插入,需要分批请调用方法insertBatch或者 insertBatchSomeColumn(List<T> entityList, int size)
* 此填充不会填充 FieldFill.UPDATE 的字段。
* 注意数据库默认更新的字段也需要手工设置
*
* @param entityList 数据
* @return 插入条数
*/
int insertBatchSomeColumn(List<T> entityLis