🎉 init-代码生成器

This commit is contained in:
bunny 2025-07-17 22:30:19 +08:00
parent 43107a07e4
commit 12f8055bd2
2 changed files with 25 additions and 9 deletions

View File

@ -31,6 +31,8 @@ public class GeneratorServiceImpl implements GeneratorService {
private final IMetadataProvider databaseMetadataProvider; private final IMetadataProvider databaseMetadataProvider;
private final IMetadataProvider sqlMetadataProvider; private final IMetadataProvider sqlMetadataProvider;
private final List<String> ignoreField = List.of("id", "update_time", "create_time", "create_user", "update_user");
/** /**
* 代码生成方法---数据库生成 * 代码生成方法---数据库生成
* *
@ -42,7 +44,14 @@ public class GeneratorServiceImpl implements GeneratorService {
return dto.getTableNames().parallelStream() return dto.getTableNames().parallelStream()
.flatMap(tableName -> { .flatMap(tableName -> {
TableMetaData tableMeta = databaseMetadataProvider.getTableMetadata(tableName); TableMetaData tableMeta = databaseMetadataProvider.getTableMetadata(tableName);
List<ColumnMetaData> columns = databaseMetadataProvider.getColumnInfoList(tableName);
// 排除不需要的字段
List<ColumnMetaData> columns = databaseMetadataProvider.getColumnInfoList(tableName).stream()
.filter(columnMetaData -> {
String columnName = columnMetaData.getColumnName();
return !ignoreField.contains(columnName);
})
.toList();
return getGeneratorStream(dto, tableMeta, columns); return getGeneratorStream(dto, tableMeta, columns);
}) })
.collect(Collectors.groupingBy(GeneratorVo::getTableName)); .collect(Collectors.groupingBy(GeneratorVo::getTableName));
@ -59,7 +68,13 @@ public class GeneratorServiceImpl implements GeneratorService {
// 根据Sql语句进行分析表的属性和表列字段 // 根据Sql语句进行分析表的属性和表列字段
String sql = dto.getSql(); String sql = dto.getSql();
TableMetaData tableMeta = sqlMetadataProvider.getTableMetadata(sql); TableMetaData tableMeta = sqlMetadataProvider.getTableMetadata(sql);
List<ColumnMetaData> columns = sqlMetadataProvider.getColumnInfoList(sql);
List<ColumnMetaData> columns = sqlMetadataProvider.getColumnInfoList(sql).stream()
.filter(columnMetaData -> {
String columnName = columnMetaData.getColumnName();
return !ignoreField.contains(columnName);
})
.toList();
// 生成代码 // 生成代码
List<GeneratorVo> generatorVoList = getGeneratorStream(dto, tableMeta, columns).toList(); List<GeneratorVo> generatorVoList = getGeneratorStream(dto, tableMeta, columns).toList();

View File

@ -1,5 +1,6 @@
package ${package}.domain.entity; package ${package}.domain.entity;
import com.auth.common.model.common.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
@ -20,12 +21,12 @@ import java.util.Date;
@Schema(name = "${classUppercaseName}对象", title = "${comment}", description = "${comment}的实体类对象") @Schema(name = "${classUppercaseName}对象", title = "${comment}", description = "${comment}的实体类对象")
public class ${classUppercaseName}Entity extends BaseEntity { public class ${classUppercaseName}Entity extends BaseEntity {
#foreach($field in ${columnInfoList}) #foreach($field in ${columnInfoList})
@Schema(name = "${field.lowercaseName}", title = "${field.comment}") @Schema(name = "${field.lowercaseName}", title = "${field.comment}")
#if($field.isPrimaryKey) #if($field.isPrimaryKey)
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
#end #end
private ${field.javaType} ${field.lowercaseName}; private ${field.javaType} ${field.lowercaseName};
#end #end
} }