疯狂的狮子li
2021-07-19 3aaf4e2384867c7900293063ed81450b0c965499
fix 回滚代码生成器 批处理优化(字段内容不一致, 不适合批处理)
已修改5个文件
34 ■■■■■ 文件已修改
ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/BaseMapperPlus.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/methods/InsertAll.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/BaseMapperPlus.java
@@ -13,6 +13,10 @@
 */
public interface BaseMapperPlus<T> extends BaseMapper<T> {
    /**
     * 单sql批量插入( 全量填充 无视数据库默认值 )
     * 适用于无脑插入
     */
    int insertAll(@Param("list") Collection<T> batchList);
}
ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java
@@ -51,11 +51,8 @@
    }
    /**
     * 单条执行性能差
     *
     * {@link #saveAll(Collection)}
     * 单条执行性能差 适用于列表对象内容不确定
     */
    @Deprecated
    @Override
    public boolean saveBatch(Collection<T> entityList, int batchSize) {
        return super.saveBatch(entityList, batchSize);
@@ -67,11 +64,8 @@
    }
    /**
     * 单条执行性能差
     *
     * {@link #saveAll(Collection)}
     * 单条执行性能差 适用于列表对象内容不确定
     */
    @Deprecated
    @Override
    public boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize) {
        return super.saveOrUpdateBatch(entityList, batchSize);
@@ -82,6 +76,10 @@
        return super.updateBatchById(entityList, batchSize);
    }
    /**
     * 单sql批量插入( 全量填充 无视数据库默认值 )
     * 适用于无脑插入
     */
    @Override
    public boolean saveAll(Collection<T> entityList) {
        return baseMapper.insertAll(entityList) == entityList.size();
ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/methods/InsertAll.java
@@ -13,7 +13,7 @@
import org.apache.ibatis.mapping.SqlSource;
/**
 * 单sql批量插入
 * 单sql批量插入( 全量填充 无视数据库默认值 )
 *
 * @author Lion Li
 */
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java
@@ -29,7 +29,7 @@
    private final ITestDemoService iTestDemoService;
    /**
     * 新增批量方法
     * 新增批量方法 ( 全量覆盖填充 )
     */
    @PostMapping()
    public AjaxResult<Void> add() {
ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
@@ -179,14 +179,10 @@
                if (row > 0) {
                    // 保存列信息
                    List<GenTableColumn> genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
                    List<GenTableColumn> saveColumns = new ArrayList<>();
                    for (GenTableColumn column : genTableColumns) {
                        GenUtils.initColumnField(column, table);
                        saveColumns.add(column);
                        genTableColumnMapper.insert(column);
                    }
                    if (CollUtil.isNotEmpty(saveColumns)) {
                        genTableColumnMapper.insertAll(saveColumns);
                    }
                }
            }
        } catch (Exception e) {
@@ -290,16 +286,12 @@
        }
        List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
        List<GenTableColumn> saveColumns = new ArrayList<>();
        dbTableColumns.forEach(column -> {
            if (!tableColumnNames.contains(column.getColumnName())) {
                GenUtils.initColumnField(column, table);
                saveColumns.add(column);
                genTableColumnMapper.insert(column);
            }
        });
        if (CollUtil.isNotEmpty(saveColumns)) {
            genTableColumnMapper.insertAll(saveColumns);
        }
        List<GenTableColumn> delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList());
        if (CollUtil.isNotEmpty(delColumns)) {