Selaa lähdekoodia

修改mybatis批量插入

hmy 1 vuosi sitten
vanhempi
commit
c72277c263

+ 109 - 109
src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java

@@ -1,6 +1,5 @@
 package cn.iocoder.yudao.framework.mybatis.core.mapper;
 
-
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.util.CollUtil;
@@ -21,116 +20,117 @@ import java.util.List;
 /**
  * 在 MyBatis Plus 的 BaseMapper 的基础上拓展,提供更多的能力
  *
- * 1. {@link BaseMapper} 为 MyBatis Plus 的基础接口,提供基础的 CRUD 能力
- * 2. {@link MPJBaseMapper} 为 MyBatis Plus Join 的基础接口,提供连表 Join 能力
+ * 1. {@link BaseMapper} 为 MyBatis Plus 的基础接口,提供基础的 CRUD 能力 2.
+ * {@link MPJBaseMapper} 为 MyBatis Plus Join 的基础接口,提供连表 Join 能力
  */
 public interface BaseMapperX<T> extends MPJBaseMapper<T> {
 
-    default PageResult<T> selectPage(PageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) {
-        // MyBatis Plus 查询
-        IPage<T> mpPage = MyBatisUtils.buildPage(pageParam);
-        selectPage(mpPage, queryWrapper);
-        // 转换返回
-        return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
-    }
-
-    default T selectOne(String field, Object value) {
-        return selectOne(new QueryWrapper<T>().eq(field, value));
-    }
-
-    default T selectOne(SFunction<T, ?> field, Object value) {
-        return selectOne(new LambdaQueryWrapper<T>().eq(field, value));
-    }
-
-    default T selectOne(String field1, Object value1, String field2, Object value2) {
-        return selectOne(new QueryWrapper<T>().eq(field1, value1).eq(field2, value2));
-    }
-
-    default T selectOne(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2) {
-        return selectOne(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2));
-    }
-
-    default T selectOne(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2,
-                        SFunction<T, ?> field3, Object value3) {
-        return selectOne(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2)
-                .eq(field3, value3));
-    }
-
-    default Long selectCount() {
-        return selectCount(new QueryWrapper<>());
-    }
-
-    default Long selectCount(String field, Object value) {
-        return selectCount(new QueryWrapper<T>().eq(field, value));
-    }
-
-    default Long selectCount(SFunction<T, ?> field, Object value) {
-        return selectCount(new LambdaQueryWrapper<T>().eq(field, value));
-    }
-
-    default List<T> selectList() {
-        return selectList(new QueryWrapper<>());
-    }
-
-    default List<T> selectList(String field, Object value) {
-        return selectList(new QueryWrapper<T>().eq(field, value));
-    }
-
-    default List<T> selectList(SFunction<T, ?> field, Object value) {
-        return selectList(new LambdaQueryWrapper<T>().eq(field, value));
-    }
-
-    default List<T> selectList(String field, Collection<?> values) {
-        if (CollUtil.isEmpty(values)) {
-            return CollUtil.newArrayList();
-        }
-        return selectList(new QueryWrapper<T>().in(field, values));
-    }
-
-    default List<T> selectList(SFunction<T, ?> field, Collection<?> values) {
-        if (CollUtil.isEmpty(values)) {
-            return CollUtil.newArrayList();
-        }
-        return selectList(new LambdaQueryWrapper<T>().in(field, values));
-    }
-
-    default List<T> selectList(SFunction<T, ?> leField, SFunction<T, ?> geField, Object value) {
-        return selectList(new LambdaQueryWrapper<T>().le(leField, value).ge(geField, value));
-    }
-
-    /**
-     * 批量插入,适合大量数据插入
-     *
-     * @param entities 实体们
-     */
-    default void insertBatch(Collection<T> entities) {
-        Db.saveBatch(entities);
-    }
-
-    /**
-     * 批量插入,适合大量数据插入
-     *
-     * @param entities 实体们
-     * @param size     插入数量 Db.saveBatch 默认为 1000
-     */
-    default void insertBatch(Collection<T> entities, int size) {
-        Db.saveBatch(entities, size);
-    }
-
-    default void updateBatch(T update) {
-        update(update, new QueryWrapper<>());
-    }
-
-    default void updateBatch(Collection<T> entities) {
-        Db.updateBatchById(entities);
-    }
-
-    default void updateBatch(Collection<T> entities, int size) {
-        Db.updateBatchById(entities, size);
-    }
-
-    default void saveOrUpdateBatch(Collection<T> collection) {
-        Db.saveOrUpdateBatch(collection);
-    }
+	default PageResult<T> selectPage(PageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) {
+		// MyBatis Plus 查询
+		IPage<T> mpPage = MyBatisUtils.buildPage(pageParam);
+		selectPage(mpPage, queryWrapper);
+		// 转换返回
+		return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
+	}
+
+	default T selectOne(String field, Object value) {
+		return selectOne(new QueryWrapper<T>().eq(field, value));
+	}
+
+	default T selectOne(SFunction<T, ?> field, Object value) {
+		return selectOne(new LambdaQueryWrapper<T>().eq(field, value));
+	}
+
+	default T selectOne(String field1, Object value1, String field2, Object value2) {
+		return selectOne(new QueryWrapper<T>().eq(field1, value1).eq(field2, value2));
+	}
+
+	default T selectOne(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2) {
+		return selectOne(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2));
+	}
+
+	default T selectOne(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2,
+			SFunction<T, ?> field3, Object value3) {
+		return selectOne(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2).eq(field3, value3));
+	}
+
+	default Long selectCount() {
+		return selectCount(new QueryWrapper<>());
+	}
+
+	default Long selectCount(String field, Object value) {
+		return selectCount(new QueryWrapper<T>().eq(field, value));
+	}
+
+	default Long selectCount(SFunction<T, ?> field, Object value) {
+		return selectCount(new LambdaQueryWrapper<T>().eq(field, value));
+	}
+
+	default List<T> selectList() {
+		return selectList(new QueryWrapper<>());
+	}
+
+	default List<T> selectList(String field, Object value) {
+		return selectList(new QueryWrapper<T>().eq(field, value));
+	}
+
+	default List<T> selectList(SFunction<T, ?> field, Object value) {
+		return selectList(new LambdaQueryWrapper<T>().eq(field, value));
+	}
+
+	default List<T> selectList(String field, Collection<?> values) {
+		if (CollUtil.isEmpty(values)) {
+			return CollUtil.newArrayList();
+		}
+		return selectList(new QueryWrapper<T>().in(field, values));
+	}
+
+	default List<T> selectList(SFunction<T, ?> field, Collection<?> values) {
+		if (CollUtil.isEmpty(values)) {
+			return CollUtil.newArrayList();
+		}
+		return selectList(new LambdaQueryWrapper<T>().in(field, values));
+	}
+
+	default List<T> selectList(SFunction<T, ?> leField, SFunction<T, ?> geField, Object value) {
+		return selectList(new LambdaQueryWrapper<T>().le(leField, value).ge(geField, value));
+	}
+
+	/**
+	 * 批量插入,适合大量数据插入
+	 *
+	 * @param entities 实体们
+	 */
+	default boolean insertBatch(Collection<T> entities) {
+
+		return Db.saveBatch(entities);
+		// return b;
+	}
+
+	/**
+	 * 批量插入,适合大量数据插入
+	 *
+	 * @param entities 实体们
+	 * @param size     插入数量 Db.saveBatch 默认为 1000
+	 */
+	default boolean insertBatch(Collection<T> entities, int size) {
+		return Db.saveBatch(entities, size);
+	}
+
+	default void updateBatch(T update) {
+		update(update, new QueryWrapper<>());
+	}
+
+	default void updateBatch(Collection<T> entities) {
+		Db.updateBatchById(entities);
+	}
+
+	default void updateBatch(Collection<T> entities, int size) {
+		Db.updateBatchById(entities, size);
+	}
+
+	default void saveOrUpdateBatch(Collection<T> collection) {
+		Db.saveOrUpdateBatch(collection);
+	}
 
 }

+ 1 - 1
src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/PlusBaseMapperX.java

@@ -24,7 +24,7 @@ import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 
 import java.util.function.Function;
 import java.util.stream.Collectors;
-
+//TODO 需要优化的两个东西,1.批量查询 2。是两表查询
 public interface PlusBaseMapperX<T> extends BaseMapperX<T> {
 	static final Log logger = LogFactory.getLog(PlusBaseMapperX.class);