💩 改进命名方式
This commit is contained in:
parent
1e07831818
commit
08c4ff9b6b
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import java.util.List;
|
|||
* 模板方法模式
|
||||
* 如果需要继承 AbstractVmsGenerator
|
||||
*/
|
||||
public abstract class AbstractVmsGeneratorTemplate {
|
||||
public abstract class AbstractTemplateGenerator {
|
||||
|
||||
/**
|
||||
* 添加生成内容
|
|
@ -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;
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue