style: 添加 Table 字段注释,优化类结构。

This commit is contained in:
Suomm 2023-06-21 22:11:03 +08:00
parent 61b6773700
commit 04f2826176

View File

@ -22,17 +22,46 @@ import java.math.BigInteger;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/**
* 数据库表信息
*/
public class Table { public class Table {
private String schema; /**
* 表名
*/
private String name; private String name;
/**
* schema模式
*/
private String schema;
/**
* 表注释
*/
private String comment; private String comment;
/**
* 主键
*/
private Set<String> primaryKeys; private Set<String> primaryKeys;
/**
* 所包含的列
*/
private List<Column> columns = new ArrayList<>(); private List<Column> columns = new ArrayList<>();
private GlobalConfig globalConfig; /**
* 表配置
*/
private TableConfig tableConfig; private TableConfig tableConfig;
/**
* 全局配置
*/
private GlobalConfig globalConfig;
public String getSchema() { public String getSchema() {
return schema; return schema;
} }
@ -69,7 +98,6 @@ public class Table {
.orElse(null); .orElse(null);
} }
public Set<String> getPrimaryKeys() { public Set<String> getPrimaryKeys() {
return primaryKeys; return primaryKeys;
} }
@ -98,12 +126,10 @@ public class Table {
//主键 //主键
if (primaryKeys != null && primaryKeys.contains(column.getName())) { if (primaryKeys != null && primaryKeys.contains(column.getName())) {
column.setPrimaryKey(true); column.setPrimaryKey(true);
if (column.getAutoIncrement() == null) { if (column.getAutoIncrement() == null && (column.getPropertyType().equals(Integer.class.getName()) || column.getPropertyType().equals(BigInteger.class.getName()))) {
if (column.getPropertyType().equals(Integer.class.getName()) || column.getPropertyType().equals(BigInteger.class.getName())) {
column.setAutoIncrement(true); column.setAutoIncrement(true);
} }
} }
}
if (column.getAutoIncrement() == null) { if (column.getAutoIncrement() == null) {
column.setAutoIncrement(false); column.setAutoIncrement(false);
@ -130,9 +156,13 @@ public class Table {
this.tableConfig = tableConfig; this.tableConfig = tableConfig;
} }
// ===== 构建实体类文件 =====
/**
* 构建 import 导包
*/
public List<String> buildImports() { public List<String> buildImports() {
Set<String> imports = new HashSet<>(); Set<String> imports = new HashSet<>();
// imports.add(com.mybatisflex.annotation.Table.class.getName());
imports.add("com.mybatisflex.annotation.Table"); imports.add("com.mybatisflex.annotation.Table");
for (Column column : columns) { for (Column column : columns) {
imports.addAll(column.getImportClasses()); imports.addAll(column.getImportClasses());
@ -165,115 +195,8 @@ public class Table {
return imports.stream().sorted(Comparator.naturalOrder()).collect(Collectors.toList()); return imports.stream().sorted(Comparator.naturalOrder()).collect(Collectors.toList());
} }
public String getEntityJavaFileName() {
String entityJavaFileName = name;
String tablePrefix = globalConfig.getStrategyConfig().getTablePrefix();
if (tablePrefix != null) {
String[] tablePrefixes = tablePrefix.split(",");
for (String prefix : tablePrefixes) {
String trimPrefix = prefix.trim();
if (trimPrefix.length() > 0 && name.startsWith(trimPrefix)) {
entityJavaFileName = name.substring(trimPrefix.length());
break;
}
}
}
return StringUtil.firstCharToUpperCase(StringUtil.underlineToCamel(entityJavaFileName));
}
/** /**
* 构建 entity Class 名称 * 构建 @Table(...) 注解
*
* @return className
*/
public String buildEntityClassName() {
String entityJavaFileName = getEntityJavaFileName();
EntityConfig entityConfig = globalConfig.getEntityConfig();
return entityConfig.getClassPrefix()
+ entityJavaFileName
+ entityConfig.getClassSuffix();
}
/**
* 构建 tableDef Class 名称
*
* @return className
*/
public String buildTableDefClassName() {
String tableDefJavaFileName = getEntityJavaFileName();
TableDefConfig tableDefConfig = globalConfig.getTableDefConfig();
return tableDefConfig.getClassPrefix()
+ tableDefJavaFileName
+ tableDefConfig.getClassSuffix();
}
/**
* 构建 MapperXml 的文件名称
*
* @return fileName
*/
public String buildMapperXmlFileName() {
String tableDefJavaFileName = getEntityJavaFileName();
MapperXmlConfig mapperXmlConfig = globalConfig.getMapperXmlConfig();
return mapperXmlConfig.getFilePrefix()
+ tableDefJavaFileName
+ mapperXmlConfig.getFileSuffix();
}
public String buildExtends() {
EntityConfig entityConfig = globalConfig.getEntityConfig();
if (entityConfig.getSupperClass() != null) {
return " extends " + entityConfig.getSupperClass().getSimpleName();
} else {
return "";
}
}
public String buildImplements() {
Class<?>[] entityInterfaces = globalConfig.getEntityConfig().getImplInterfaces();
if (entityInterfaces != null && entityInterfaces.length > 0) {
return " implements " + StringUtil.join(", ", Arrays.stream(entityInterfaces)
.map(Class::getSimpleName).collect(Collectors.toList()));
} else {
return "";
}
}
public String buildMapperClassName() {
String entityJavaFileName = getEntityJavaFileName();
MapperConfig mapperConfig = globalConfig.getMapperConfig();
return mapperConfig.getClassPrefix()
+ entityJavaFileName
+ mapperConfig.getClassSuffix();
}
public String buildServiceClassName() {
String entityJavaFileName = getEntityJavaFileName();
ServiceConfig serviceConfig = globalConfig.getServiceConfig();
return serviceConfig.getClassPrefix()
+ entityJavaFileName
+ serviceConfig.getClassSuffix();
}
public String buildServiceImplClassName() {
String entityJavaFileName = getEntityJavaFileName();
ServiceImplConfig serviceImplConfig = globalConfig.getServiceImplConfig();
return serviceImplConfig.getClassPrefix()
+ entityJavaFileName
+ serviceImplConfig.getClassSuffix();
}
public String buildControllerClassName() {
String entityJavaFileName = getEntityJavaFileName();
ControllerConfig controllerConfig = globalConfig.getControllerConfig();
return controllerConfig.getClassPrefix()
+ entityJavaFileName
+ controllerConfig.getClassSuffix();
}
/**
* 构建 @Table(...) 注解
*/ */
public String buildTableAnnotation() { public String buildTableAnnotation() {
StringBuilder tableAnnotation = new StringBuilder(); StringBuilder tableAnnotation = new StringBuilder();
@ -307,6 +230,129 @@ public class Table {
return tableAnnotation.append(")").toString(); return tableAnnotation.append(")").toString();
} }
/**
* 构建 extends 继承
*/
public String buildExtends() {
EntityConfig entityConfig = globalConfig.getEntityConfig();
if (entityConfig.getSupperClass() != null) {
return " extends " + entityConfig.getSupperClass().getSimpleName();
} else {
return "";
}
}
/**
* 构建 implements 实现
*/
public String buildImplements() {
Class<?>[] entityInterfaces = globalConfig.getEntityConfig().getImplInterfaces();
if (entityInterfaces != null && entityInterfaces.length > 0) {
return " implements " + StringUtil.join(", ", Arrays.stream(entityInterfaces)
.map(Class::getSimpleName).collect(Collectors.toList()));
} else {
return "";
}
}
// ===== 构建相关类名 =====
/**
* 获取生成 Java 文件名
*/
public String getEntityJavaFileName() {
String entityJavaFileName = name;
String tablePrefix = globalConfig.getStrategyConfig().getTablePrefix();
if (tablePrefix != null) {
String[] tablePrefixes = tablePrefix.split(",");
for (String prefix : tablePrefixes) {
String trimPrefix = prefix.trim();
if (trimPrefix.length() > 0 && name.startsWith(trimPrefix)) {
entityJavaFileName = name.substring(trimPrefix.length());
break;
}
}
}
return StringUtil.firstCharToUpperCase(StringUtil.underlineToCamel(entityJavaFileName));
}
/**
* 构建 entity Class 名称
*/
public String buildEntityClassName() {
String entityJavaFileName = getEntityJavaFileName();
EntityConfig entityConfig = globalConfig.getEntityConfig();
return entityConfig.getClassPrefix()
+ entityJavaFileName
+ entityConfig.getClassSuffix();
}
/**
* 构建 tableDef Class 名称
*/
public String buildTableDefClassName() {
String tableDefJavaFileName = getEntityJavaFileName();
TableDefConfig tableDefConfig = globalConfig.getTableDefConfig();
return tableDefConfig.getClassPrefix()
+ tableDefJavaFileName
+ tableDefConfig.getClassSuffix();
}
/**
* 构建 mapper Class 名称
*/
public String buildMapperClassName() {
String entityJavaFileName = getEntityJavaFileName();
MapperConfig mapperConfig = globalConfig.getMapperConfig();
return mapperConfig.getClassPrefix()
+ entityJavaFileName
+ mapperConfig.getClassSuffix();
}
/**
* 构建 service Class 名称
*/
public String buildServiceClassName() {
String entityJavaFileName = getEntityJavaFileName();
ServiceConfig serviceConfig = globalConfig.getServiceConfig();
return serviceConfig.getClassPrefix()
+ entityJavaFileName
+ serviceConfig.getClassSuffix();
}
/**
* 构建 serviceImpl Class 名称
*/
public String buildServiceImplClassName() {
String entityJavaFileName = getEntityJavaFileName();
ServiceImplConfig serviceImplConfig = globalConfig.getServiceImplConfig();
return serviceImplConfig.getClassPrefix()
+ entityJavaFileName
+ serviceImplConfig.getClassSuffix();
}
/**
* 构建 controller Class 名称
*/
public String buildControllerClassName() {
String entityJavaFileName = getEntityJavaFileName();
ControllerConfig controllerConfig = globalConfig.getControllerConfig();
return controllerConfig.getClassPrefix()
+ entityJavaFileName
+ controllerConfig.getClassSuffix();
}
/**
* 构建 MapperXml 的文件名称
*/
public String buildMapperXmlFileName() {
String tableDefJavaFileName = getEntityJavaFileName();
MapperXmlConfig mapperXmlConfig = globalConfig.getMapperXmlConfig();
return mapperXmlConfig.getFilePrefix()
+ tableDefJavaFileName
+ mapperXmlConfig.getFileSuffix();
}
@Override @Override
public String toString() { public String toString() {
return "Table{" + return "Table{" +
@ -318,5 +364,4 @@ public class Table {
'}'; '}';
} }
} }