From 08c4ff9b6bad6f6d5e377d24e5f6a857c02a815b Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Tue, 1 Jul 2025 15:28:18 +0800 Subject: [PATCH] =?UTF-8?q?:poop:=20=E6=94=B9=E8=BF=9B=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/factory/DatabaseMetadataProvider.java | 16 ++++++++++------ ...plate.java => AbstractTemplateGenerator.java} | 2 +- ...eGenerator.java => VmsTemplateGenerator.java} | 4 ++-- .../impl/vms/VmsCodeGeneratorService.java | 16 ++++++++-------- 4 files changed, 21 insertions(+), 17 deletions(-) rename generator-code-server/src/main/java/cn/bunny/core/template/{AbstractVmsGeneratorTemplate.java => AbstractTemplateGenerator.java} (96%) rename generator-code-server/src/main/java/cn/bunny/core/template/{VmsArgumentDtoBaseTemplateGenerator.java => VmsTemplateGenerator.java} (92%) diff --git a/generator-code-server/src/main/java/cn/bunny/core/factory/DatabaseMetadataProvider.java b/generator-code-server/src/main/java/cn/bunny/core/factory/DatabaseMetadataProvider.java index c300b20..031186c 100644 --- a/generator-code-server/src/main/java/cn/bunny/core/factory/DatabaseMetadataProvider.java +++ b/generator-code-server/src/main/java/cn/bunny/core/factory/DatabaseMetadataProvider.java @@ -6,7 +6,6 @@ import cn.bunny.domain.entity.TableMetaData; import cn.bunny.exception.GeneratorCodeException; import cn.bunny.utils.TypeConvertUtil; import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -23,6 +22,7 @@ import java.util.*; public class DatabaseMetadataProvider implements IMetadataProvider { private final DataSource dataSource; + @Value("${bunny.master.database}") private String currentDatabase; @@ -50,7 +50,7 @@ public class DatabaseMetadataProvider implements IMetadataProvider { return primaryKeys; } catch (SQLException e) { - throw new GeneratorCodeException("获取主键失败:" + e.getMessage()); + throw new GeneratorCodeException("Get primary key error:" + e.getMessage()); } } @@ -59,7 +59,6 @@ public class DatabaseMetadataProvider implements IMetadataProvider { * * @return 当前连接的数据库信息属性 */ - @SneakyThrows public DatabaseInfoMetaData databaseInfoMetaData() { try (Connection connection = dataSource.getConnection()) { DatabaseMetaData metaData = connection.getMetaData(); @@ -73,6 +72,8 @@ public class DatabaseMetadataProvider implements IMetadataProvider { .username(metaData.getUserName()) .currentDatabase(currentDatabase) .build(); + } catch (SQLException e) { + throw new GeneratorCodeException("Get database info error:" + e.getMessage()); } } @@ -82,7 +83,6 @@ public class DatabaseMetadataProvider implements IMetadataProvider { * @param identifier 表名称或sql * @return 表西悉尼 */ - @SneakyThrows @Override public TableMetaData getTableMetadata(String identifier) { TableMetaData tableMetaData; @@ -113,6 +113,8 @@ public class DatabaseMetadataProvider implements IMetadataProvider { } return tableMetaData; + } catch (Exception e) { + throw new GeneratorCodeException(e.getMessage()); } } @@ -121,7 +123,6 @@ public class DatabaseMetadataProvider implements IMetadataProvider { * * @return 所有表信息 */ - @SneakyThrows public List getTableMetadataBatch(String dbName) { // 当前数据库数据库所有的表 List allTableInfo = new ArrayList<>(); @@ -141,6 +142,8 @@ public class DatabaseMetadataProvider implements IMetadataProvider { allTableInfo.add(tableMetaData); } + } catch (Exception e) { + throw new GeneratorCodeException("Get error of [current/all] database tables" + e.getMessage()); } return allTableInfo; @@ -152,7 +155,6 @@ public class DatabaseMetadataProvider implements IMetadataProvider { * @param identifier 表名称或sql * @return 当前表所有的列内容 */ - @SneakyThrows @Override public List getColumnInfoList(String identifier) { try (Connection connection = dataSource.getConnection()) { @@ -198,6 +200,8 @@ public class DatabaseMetadataProvider implements IMetadataProvider { } return new ArrayList<>(map.values()); + } catch (Exception e) { + throw new RuntimeException("Get error of database columns mete data" + e.getMessage()); } } } diff --git a/generator-code-server/src/main/java/cn/bunny/core/template/AbstractVmsGeneratorTemplate.java b/generator-code-server/src/main/java/cn/bunny/core/template/AbstractTemplateGenerator.java similarity index 96% rename from generator-code-server/src/main/java/cn/bunny/core/template/AbstractVmsGeneratorTemplate.java rename to generator-code-server/src/main/java/cn/bunny/core/template/AbstractTemplateGenerator.java index 13d08d0..00a9c26 100644 --- a/generator-code-server/src/main/java/cn/bunny/core/template/AbstractVmsGeneratorTemplate.java +++ b/generator-code-server/src/main/java/cn/bunny/core/template/AbstractTemplateGenerator.java @@ -11,7 +11,7 @@ import java.util.List; * 模板方法模式 * 如果需要继承 AbstractVmsGenerator */ -public abstract class AbstractVmsGeneratorTemplate { +public abstract class AbstractTemplateGenerator { /** * 添加生成内容 diff --git a/generator-code-server/src/main/java/cn/bunny/core/template/VmsArgumentDtoBaseTemplateGenerator.java b/generator-code-server/src/main/java/cn/bunny/core/template/VmsTemplateGenerator.java similarity index 92% rename from generator-code-server/src/main/java/cn/bunny/core/template/VmsArgumentDtoBaseTemplateGenerator.java rename to generator-code-server/src/main/java/cn/bunny/core/template/VmsTemplateGenerator.java index f690fa9..de4127a 100644 --- a/generator-code-server/src/main/java/cn/bunny/core/template/VmsArgumentDtoBaseTemplateGenerator.java +++ b/generator-code-server/src/main/java/cn/bunny/core/template/VmsTemplateGenerator.java @@ -15,7 +15,7 @@ import java.util.Date; * 使用模板方法,方便扩展 * 如果需要继承 AbstractVmsGenerator */ -public class VmsArgumentDtoBaseTemplateGenerator extends AbstractTemplateGenerator { +public class VmsTemplateGenerator extends AbstractTemplateGenerator { private final VmsArgumentDto dto; private final String path; @@ -26,7 +26,7 @@ public class VmsArgumentDtoBaseTemplateGenerator extends AbstractTemplateGenerat * @param path 当前路径 * @param tableMetaData 表名称 */ - public VmsArgumentDtoBaseTemplateGenerator(VmsArgumentDto dto, String path, TableMetaData tableMetaData) { + public VmsTemplateGenerator(VmsArgumentDto dto, String path, TableMetaData tableMetaData) { this.dto = dto; this.path = path; this.tableMetaData = tableMetaData; diff --git a/generator-code-server/src/main/java/cn/bunny/service/impl/vms/VmsCodeGeneratorService.java b/generator-code-server/src/main/java/cn/bunny/service/impl/vms/VmsCodeGeneratorService.java index 1a3ec5f..588c03b 100644 --- a/generator-code-server/src/main/java/cn/bunny/service/impl/vms/VmsCodeGeneratorService.java +++ b/generator-code-server/src/main/java/cn/bunny/service/impl/vms/VmsCodeGeneratorService.java @@ -2,7 +2,7 @@ package cn.bunny.service.impl.vms; import cn.bunny.core.factory.DatabaseMetadataProvider; import cn.bunny.core.factory.SqlMetadataProvider; -import cn.bunny.core.template.VmsArgumentDtoBaseTemplateGenerator; +import cn.bunny.core.template.VmsTemplateGenerator; import cn.bunny.domain.dto.VmsArgumentDto; import cn.bunny.domain.entity.ColumnMetaData; import cn.bunny.domain.entity.TableMetaData; @@ -25,8 +25,8 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class VmsCodeGeneratorService { - private final DatabaseMetadataProvider databaseInfoCore; - private final SqlMetadataProvider sqlParserDatabaseInfo; + private final DatabaseMetadataProvider databaseMetadataProvider; + private final SqlMetadataProvider sqlMetadataProvider; /** * 根据DTO生成代码模板 @@ -44,7 +44,7 @@ public class VmsCodeGeneratorService { return dto.getPath().stream() .map(path -> { - VmsArgumentDtoBaseTemplateGenerator generator = new VmsArgumentDtoBaseTemplateGenerator(dto, path, tableMetaData); + VmsTemplateGenerator generator = new VmsTemplateGenerator(dto, path, tableMetaData); StringWriter writer = generator.generatorCodeTemplate(tableMetaData, columnInfoList); String processedPath = VmsUtil.handleVmFilename(path, tableMetaData.getTableName()); @@ -71,8 +71,8 @@ public class VmsCodeGeneratorService { */ private TableMetaData getTableMetadata(VmsArgumentDto dto, String tableName) { return StringUtils.hasText(dto.getSql()) - ? sqlParserDatabaseInfo.getTableMetadata(dto.getSql()) - : databaseInfoCore.getTableMetadata(tableName); + ? sqlMetadataProvider.getTableMetadata(dto.getSql()) + : databaseMetadataProvider.getTableMetadata(tableName); } /** @@ -84,8 +84,8 @@ public class VmsCodeGeneratorService { */ private List getColumnInfoList(String sql, String tableName) { return StringUtils.hasText(sql) - ? sqlParserDatabaseInfo.getColumnInfoList(sql) - : databaseInfoCore.getColumnInfoList(tableName).stream().distinct().toList(); + ? sqlMetadataProvider.getColumnInfoList(sql) + : databaseMetadataProvider.getColumnInfoList(tableName).stream().distinct().toList(); } } \ No newline at end of file