From 44c41593e124fe645bc871daaaa668a4eb0f63c4 Mon Sep 17 00:00:00 2001 From: b2baccline <23131013+b2baccline@users.noreply.github.com> Date: Sun, 7 Nov 2021 15:28:16 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E8=B0=83=E6=95=B4=E4=B8=8B=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E4=BD=8D=E7=BD=AE=EF=BC=8C=E6=96=B9=E4=BE=BF=E4=B8=8B?= =?UTF-8?q?=E6=AC=A1=E5=8D=87=E7=BA=A7=20mybatis-plus=20=E6=AF=94=E5=AF=B9?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/plus/service/ExtendService.java | 42 +++++++++---------- .../plus/service/impl/ExtendServiceImpl.java | 28 ++++++++----- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/ballcat-extends/ballcat-extend-mybatis-plus/src/main/java/com/hccake/extend/mybatis/plus/service/ExtendService.java b/ballcat-extends/ballcat-extend-mybatis-plus/src/main/java/com/hccake/extend/mybatis/plus/service/ExtendService.java index 85fd8e22..472382ee 100644 --- a/ballcat-extends/ballcat-extend-mybatis-plus/src/main/java/com/hccake/extend/mybatis/plus/service/ExtendService.java +++ b/ballcat-extends/ballcat-extend-mybatis-plus/src/main/java/com/hccake/extend/mybatis/plus/service/ExtendService.java @@ -3,10 +3,11 @@ package com.hccake.extend.mybatis.plus.service; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; +import org.springframework.transaction.annotation.Transactional; + import java.io.Serializable; import java.util.Collection; import java.util.List; -import org.springframework.transaction.annotation.Transactional; /** * 以前继承 com.baomidou.mybatisplus.extension.service.IService 的实现类,现在继承当前类 @@ -22,11 +23,6 @@ public interface ExtendService { */ int DEFAULT_BATCH_SIZE = 1000; - /** - * 默认一次批量插入的数量 - */ - int DEFAULT_INSERT_BATCH_SIZE = 5000; - /** * 插入一条记录(选择字段,策略插入) * @param entity 实体对象 @@ -35,6 +31,22 @@ public interface ExtendService { return SqlHelper.retBool(getBaseMapper().insert(entity)); } + /** + * 插入(批量) + * @param entityList 实体对象集合 + */ + @Transactional(rollbackFor = Exception.class) + default boolean saveBatch(Collection entityList) { + return saveBatch(entityList, DEFAULT_BATCH_SIZE); + } + + /** + * 插入(批量) + * @param entityList 实体对象集合 + * @param batchSize 插入批次数量 + */ + boolean saveBatch(Collection entityList, int batchSize); + /** * 根据 ID 删除 * @param id 主键ID @@ -124,7 +136,7 @@ public interface ExtendService { */ @Transactional(rollbackFor = Exception.class) default boolean saveBatchSomeColumn(Collection list) { - return this.saveBatchSomeColumn(list, DEFAULT_INSERT_BATCH_SIZE); + return this.saveBatchSomeColumn(list, DEFAULT_BATCH_SIZE); } /** @@ -136,20 +148,4 @@ public interface ExtendService { */ boolean saveBatchSomeColumn(Collection list, int batchSize); - /** - * 插入(批量) - * @param entityList 实体对象集合 - */ - @Transactional(rollbackFor = Exception.class) - default boolean saveBatch(Collection entityList) { - return saveBatch(entityList, DEFAULT_INSERT_BATCH_SIZE); - } - - /** - * 插入(批量) - * @param entityList 实体对象集合 - * @param batchSize 插入批次数量 - */ - boolean saveBatch(Collection entityList, int batchSize); - } diff --git a/ballcat-extends/ballcat-extend-mybatis-plus/src/main/java/com/hccake/extend/mybatis/plus/service/impl/ExtendServiceImpl.java b/ballcat-extends/ballcat-extend-mybatis-plus/src/main/java/com/hccake/extend/mybatis/plus/service/impl/ExtendServiceImpl.java index 2fac9500..9ef69645 100644 --- a/ballcat-extends/ballcat-extend-mybatis-plus/src/main/java/com/hccake/extend/mybatis/plus/service/impl/ExtendServiceImpl.java +++ b/ballcat-extends/ballcat-extend-mybatis-plus/src/main/java/com/hccake/extend/mybatis/plus/service/impl/ExtendServiceImpl.java @@ -7,9 +7,6 @@ import com.baomidou.mybatisplus.core.toolkit.ReflectionKit; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; import com.hccake.extend.mybatis.plus.service.ExtendService; -import java.util.Collection; -import java.util.List; -import java.util.function.BiConsumer; import org.apache.ibatis.binding.MapperMethod; import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.LogFactory; @@ -17,6 +14,10 @@ import org.apache.ibatis.session.SqlSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; +import java.util.List; +import java.util.function.BiConsumer; + /** * 以前继承 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl 的实现类,现在继承本类 * @@ -66,6 +67,19 @@ public class ExtendServiceImpl, T> implements ExtendSe return (Class) ReflectionKit.getSuperClassGenericType(this.getClass(), ExtendServiceImpl.class, 1); } + /** + * 批量插入 + * @param entityList ignore + * @param batchSize ignore + * @return ignore + */ + @Transactional(rollbackFor = Exception.class) + @Override + public boolean saveBatch(Collection entityList, int batchSize) { + String sqlStatement = getSqlStatement(SqlMethod.INSERT_ONE); + return executeBatch(entityList, batchSize, (sqlSession, entity) -> sqlSession.insert(sqlStatement, entity)); + } + /** * 获取mapperStatementId * @param sqlMethod 方法名 @@ -123,12 +137,4 @@ public class ExtendServiceImpl, T> implements ExtendSe return true; } - @Override - @Transactional(rollbackFor = Exception.class) - public boolean saveBatch(Collection entityList, int batchSize) { - String sqlStatement = getSqlStatement(SqlMethod.INSERT_ONE); - return SqlHelper.executeBatch(this.entityClass, this.log, entityList, batchSize, - ((sqlSession, entity) -> sqlSession.insert(sqlStatement, entity))); - } - }