💩 改进命名方式

This commit is contained in:
Bunny 2025-07-01 15:28:18 +08:00
parent 1e07831818
commit 08c4ff9b6b
4 changed files with 21 additions and 17 deletions

View File

@ -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<TableMetaData> getTableMetadataBatch(String dbName) {
// 当前数据库数据库所有的表
List<TableMetaData> 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<ColumnMetaData> 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());
}
}
}

View File

@ -11,7 +11,7 @@ import java.util.List;
* 模板方法模式
* 如果需要继承 AbstractVmsGenerator
*/
public abstract class AbstractVmsGeneratorTemplate {
public abstract class AbstractTemplateGenerator {
/**
* 添加生成内容

View File

@ -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;

View File

@ -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<ColumnMetaData> 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();
}
}