From 8a8fe969a36d9bd547689e99d45176023c5b08d4 Mon Sep 17 00:00:00 2001 From: caoshd Date: Thu, 4 Apr 2024 02:22:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96:=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=A1=A8=20=E5=A4=9A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caoshd/otone/builder/ColumnBuilder.java | 25 ++--- .../caoshd/otone/builder/IndexBuilder.java | 52 ---------- .../caoshd/otone/builder/InfoOutBuilder.java | 3 - .../caoshd/otone/builder/TableBuilder.java | 97 +++---------------- .../space/caoshd/otone/entity/ColumnInfo.java | 10 ++ .../space/caoshd/otone/entity/IndexInfo.java | 34 ------- .../space/caoshd/otone/helper/SqlUtils.java | 63 ++++++++++++ .../space/caoshd/otone/util/CfgUtils.java | 9 +- .../space/caoshd/otone/util/SqlConsts.java | 23 ----- .../space/caoshd/otone/util/DBUtilsTest.java | 13 +-- src/test/resources/config/config.properties | 6 +- src/test/resources/config/h2.properties | 5 + src/test/resources/config/mysql.properties | 11 +-- src/test/resources/template/controller.vm | 65 ------------- src/test/resources/template/mapper.vm | 55 ----------- src/test/resources/template/service.impl.vm | 65 ------------- src/test/resources/template/service.intf.vm | 50 ---------- 17 files changed, 118 insertions(+), 468 deletions(-) delete mode 100644 src/main/java/space/caoshd/otone/builder/IndexBuilder.java delete mode 100644 src/main/java/space/caoshd/otone/entity/IndexInfo.java create mode 100644 src/main/java/space/caoshd/otone/helper/SqlUtils.java delete mode 100644 src/main/java/space/caoshd/otone/util/SqlConsts.java create mode 100644 src/test/resources/config/h2.properties diff --git a/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java b/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java index 057bb19..ce7ca10 100644 --- a/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java @@ -3,11 +3,9 @@ package space.caoshd.otone.builder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import space.caoshd.otone.entity.ColumnInfo; -import space.caoshd.otone.helper.PropHelper; +import space.caoshd.otone.helper.SqlUtils; import space.caoshd.otone.util.DBUtils; import space.caoshd.otone.util.JsonUtils; -import space.caoshd.otone.util.PathConsts; -import space.caoshd.otone.util.SqlConsts; import space.caoshd.otone.util.StrUtils; import space.caoshd.otone.util.TypeUtils; @@ -20,8 +18,6 @@ public class ColumnBuilder { private static final Logger LOGGER = LoggerFactory.getLogger(ColumnBuilder.class); - private static final PropHelper CONFIG = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); - private final String schemaName; private final String tableName; @@ -31,7 +27,7 @@ public class ColumnBuilder { } public List build() { - String sql = CONFIG.getString(SqlConsts.COLUMN_SQL_SCHEMA_TABLE); + String sql = SqlUtils.getColumnSql(); List params = Arrays.asList(schemaName, tableName); List> columns = DBUtils.list(sql, params); @@ -44,20 +40,25 @@ public class ColumnBuilder { private ColumnInfo createColumnInfo(Map column) { ColumnInfo result = new ColumnInfo(); - String columnComment = CONFIG.getString(SqlConsts.LABEL_COLUMN_COMMENT); - result.setComment(column.get(columnComment)); - String columnName = CONFIG.getString(SqlConsts.LABEL_COLUMN_NAME); + String columnName = SqlUtils.getLabelColumnName(); result.setColumnName(column.get(columnName)); String fieldName = StrUtils.toCamelCase(result.getColumnName(), false); result.setFieldName(fieldName); String fieldNameCap = StrUtils.toCamelCase(result.getColumnName(), true); result.setFieldNameCap(fieldNameCap); - String dbType = CONFIG.getString(SqlConsts.LABEL_DATA_TYPE); + + String columnComment = SqlUtils.getLabelColumnComment(); + result.setComment(column.get(columnComment)); + + String dbType = SqlUtils.getLabelDataType(); result.setDbType(column.get(dbType)); String javaType = TypeUtils.toJavaDataType(result.getDbType()); result.setJavaType(javaType); - String extra = CONFIG.getString(SqlConsts.LABEL_EXTRA); - result.setAutoIncrement(column.get(extra).contains(SqlConsts.VALUE_AUTO_INCREMENT)); + String autoIncrement = SqlUtils.getLabelAutoIncrement(); + result.setAutoIncrement(SqlUtils.VALUE_AUTO_INCREMENT_YES.equals(column.get(autoIncrement))); + + String primary = SqlUtils.getLabelPrimary(); + result.setPrimary(SqlUtils.VALUE_PRIMARY_YES.equals(column.get(primary))); LOGGER.debug(JsonUtils.toJson(result)); return result; diff --git a/src/main/java/space/caoshd/otone/builder/IndexBuilder.java b/src/main/java/space/caoshd/otone/builder/IndexBuilder.java deleted file mode 100644 index 6436ce0..0000000 --- a/src/main/java/space/caoshd/otone/builder/IndexBuilder.java +++ /dev/null @@ -1,52 +0,0 @@ -package space.caoshd.otone.builder; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import space.caoshd.otone.entity.IndexInfo; -import space.caoshd.otone.helper.PropHelper; -import space.caoshd.otone.util.DBUtils; -import space.caoshd.otone.util.JsonUtils; -import space.caoshd.otone.util.PathConsts; -import space.caoshd.otone.util.SqlConsts; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -public class IndexBuilder { - - private static final Logger LOGGER = LoggerFactory.getLogger(IndexBuilder.class); - - private static final PropHelper CONFIG = - new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); - - public static List loadIndexInfo(String schemaName, String tableName) { - - String sql = CONFIG.getString(SqlConsts.INDEX_SQL_SCHEMA_TABLE); - List params = Arrays.asList(schemaName, tableName); - List> indexes = DBUtils.list(sql, params); - - List result = new ArrayList<>(); - for (Map index : indexes) { - result.add(createIndexInfo(index)); - } - return result; - } - - private static IndexInfo createIndexInfo(Map index) { - IndexInfo result = new IndexInfo(); - - String columnName = CONFIG.getString(SqlConsts.LABEL_COLUMN_NAME); - result.setColumnName(index.get(columnName)); - - String indexName = CONFIG.getString(SqlConsts.LABEL_INDEX_NAME); - result.setIndexName(index.get(indexName)); - - String nonUnique = CONFIG.getString(SqlConsts.LABEL_NON_UNIQUE); - result.setNonUnique(index.get(nonUnique)); - - LOGGER.debug(JsonUtils.toJson(result)); - return result; - } -} diff --git a/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java b/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java index 5b0edd0..9f2da98 100644 --- a/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java @@ -1,11 +1,8 @@ package space.caoshd.otone.builder; import space.caoshd.otone.entity.OutputInfo; -import space.caoshd.otone.entity.TableInfo; import space.caoshd.otone.util.CfgUtils; -import java.util.List; - public class InfoOutBuilder { private final OutputInfo outputInfo = new OutputInfo(); diff --git a/src/main/java/space/caoshd/otone/builder/TableBuilder.java b/src/main/java/space/caoshd/otone/builder/TableBuilder.java index 1bfe3d8..8cf447e 100644 --- a/src/main/java/space/caoshd/otone/builder/TableBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/TableBuilder.java @@ -3,94 +3,50 @@ package space.caoshd.otone.builder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import space.caoshd.otone.entity.ColumnInfo; -import space.caoshd.otone.entity.IndexInfo; import space.caoshd.otone.entity.TableInfo; -import space.caoshd.otone.helper.PropHelper; +import space.caoshd.otone.helper.SqlUtils; import space.caoshd.otone.util.CfgUtils; import space.caoshd.otone.util.DBUtils; import space.caoshd.otone.util.JsonUtils; -import space.caoshd.otone.util.PathConsts; -import space.caoshd.otone.util.SqlConsts; import space.caoshd.otone.util.TypeUtils; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Objects; public class TableBuilder { private static final Logger LOGGER = LoggerFactory.getLogger(TableBuilder.class); - private static final PropHelper MYSQL_CONFIG = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); - - private static final PropHelper CONFIG = new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH); - public List build() { List result = new ArrayList<>(); - List schemaNames = CONFIG.getStringList(CfgUtils.DATABASE_NAME_SCHEMAS); - if (schemaNames.isEmpty()) { - String sql = MYSQL_CONFIG.getString(SqlConsts.TABLE_SQL); - List> tables = DBUtils.list(sql); - for (Map table : tables) { - result.add(createTableInfo(table)); - } - } else { - for (String schemaName : schemaNames) { - result.addAll(build(schemaName)); - } - } - - return result; - } - - public List build(String schemaName) { - List result = new ArrayList<>(); - List tableNames = CONFIG.getStringList(CfgUtils.DATABASE_NAME_TABLES); - if (tableNames.isEmpty()) { - String sql = MYSQL_CONFIG.getString(SqlConsts.TABLE_SQL_SCHEMA); - List params = Collections.singletonList(schemaName); - List> tables = DBUtils.list(sql, params); - for (Map table : tables) { + String sql = SqlUtils.getTableSql(); + List> tables = DBUtils.list(sql); + for (Map table : tables) { + List tableNames = CfgUtils.getDatabaseTableIncludes(); + if (tableNames.isEmpty()) { result.add(createTableInfo(table)); - } - } else { - for (String tableName : tableNames) { - TableInfo tableInfo = build(schemaName, tableName); - if (Objects.nonNull(tableInfo)) { - result.add(tableInfo); + } else { + if (tableNames.contains(SqlUtils.getLabelTableName())) { + result.add(createTableInfo(table)); } } } return result; } - public TableInfo build(String schemaName, String tableName) { - String sql = MYSQL_CONFIG.getString(SqlConsts.TABLE_SQL_SCHEMA_TABLE); - List params = Arrays.asList(schemaName, tableName); - Map table = DBUtils.one(sql, params); - if (Objects.isNull(table)) { - LOGGER.warn("table: [{}] not exists", tableName); - return null; - } - return createTableInfo(table); - } - private TableInfo createTableInfo(Map table) { TableInfo result = new TableInfo(); - String tableSchemaLabel = MYSQL_CONFIG.getString(SqlConsts.LABEL_TABLE_SCHEMA); + String tableSchemaLabel = SqlUtils.getLabelTableSchema(); String tableSchema = table.get(tableSchemaLabel); result.setTableSchema(tableSchema); - String tableCommentLabel = MYSQL_CONFIG.getString(SqlConsts.LABEL_TABLE_COMMENT); + String tableCommentLabel = SqlUtils.getLabelTableComment(); String comment = table.get(tableCommentLabel); result.setComment(comment); - String tableNameLabel = MYSQL_CONFIG.getString(SqlConsts.LABEL_TABLE_NAME); + String tableNameLabel = SqlUtils.getLabelTableName(); String tableName = table.get(tableNameLabel); result.setTableName(tableName); @@ -115,26 +71,6 @@ public class TableBuilder { result.setInvalidValue(invalidValue); } - List indexInfoList = IndexBuilder.loadIndexInfo( - result.getTableSchema(), - result.getTableName() - ); - - Map> indexInfo = new HashMap<>(); - indexInfoList.forEach(index -> { - List indexColumnInfoList = indexInfo.computeIfAbsent( - index.getIndexName(), - k -> new ArrayList<>() - ); - ColumnInfo columnInfoByColumnName = getColumnInfoByColumnName( - columnInfo, - index.getColumnName() - ); - indexColumnInfoList.add(columnInfoByColumnName); - }); - - result.setIndexes(indexInfo); - LOGGER.debug(JsonUtils.toJson(result)); return result; } @@ -143,13 +79,4 @@ public class TableBuilder { return new ColumnBuilder(tableSchema, tableName).build(); } - private ColumnInfo getColumnInfoByColumnName( - List columnInfoList, String columnName - ) { - return columnInfoList.stream() - .filter(x -> columnName.equals(x.getColumnName())) - .findFirst() - .orElseThrow(() -> new RuntimeException("column: " + columnName + " not exists.")); - } - } diff --git a/src/main/java/space/caoshd/otone/entity/ColumnInfo.java b/src/main/java/space/caoshd/otone/entity/ColumnInfo.java index d2721ce..9eda9c0 100644 --- a/src/main/java/space/caoshd/otone/entity/ColumnInfo.java +++ b/src/main/java/space/caoshd/otone/entity/ColumnInfo.java @@ -9,6 +9,7 @@ public class ColumnInfo { private String javaType; private String comment; private Boolean autoIncrement; + private Boolean primary; public String getColumnName() { return columnName; @@ -65,4 +66,13 @@ public class ColumnInfo { public void setAutoIncrement(Boolean autoIncrement) { this.autoIncrement = autoIncrement; } + + public Boolean getPrimary() { + return primary; + } + + public void setPrimary(Boolean primary) { + this.primary = primary; + } + } diff --git a/src/main/java/space/caoshd/otone/entity/IndexInfo.java b/src/main/java/space/caoshd/otone/entity/IndexInfo.java deleted file mode 100644 index 7d67ec0..0000000 --- a/src/main/java/space/caoshd/otone/entity/IndexInfo.java +++ /dev/null @@ -1,34 +0,0 @@ -package space.caoshd.otone.entity; - -public class IndexInfo { - - private String nonUnique; - - private String indexName; - - private String columnName; - - public String getNonUnique() { - return nonUnique; - } - - public void setNonUnique(String nonUnique) { - this.nonUnique = nonUnique; - } - - public String getIndexName() { - return indexName; - } - - public void setIndexName(String indexName) { - this.indexName = indexName; - } - - public String getColumnName() { - return columnName; - } - - public void setColumnName(String columnName) { - this.columnName = columnName; - } -} diff --git a/src/main/java/space/caoshd/otone/helper/SqlUtils.java b/src/main/java/space/caoshd/otone/helper/SqlUtils.java new file mode 100644 index 0000000..b4ba670 --- /dev/null +++ b/src/main/java/space/caoshd/otone/helper/SqlUtils.java @@ -0,0 +1,63 @@ +package space.caoshd.otone.helper; + +import space.caoshd.otone.util.PathConsts; + +public class SqlUtils { + + public static final String TABLE_SQL = "table.sql"; + public static final String COLUMN_SQL = "column.sql"; + public static final String LABEL_TABLE_NAME = "label.table_name"; + public static final String LABEL_TABLE_SCHEMA = "label.table_schema"; + public static final String LABEL_TABLE_COMMENT = "label.table_comment"; + public static final String LABEL_COLUMN_NAME = "label.column_name"; + public static final String LABEL_COLUMN_COMMENT = "label.column_comment"; + public static final String LABEL_DATA_TYPE = "label.data_type"; + public static final String LABEL_AUTO_INCREMENT = "label.auto_increment"; + public static final String LABEL_PRIMARY = "label.primary"; + public static final String VALUE_AUTO_INCREMENT_YES = "1"; + public static final String VALUE_PRIMARY_YES = "1"; + private static final PropHelper CONFIG = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); + + private SqlUtils() {} + + public static String getTableSql() { + return CONFIG.getString(TABLE_SQL); + } + + public static String getColumnSql() { + return CONFIG.getString(COLUMN_SQL); + } + + public static String getLabelTableName() { + return CONFIG.getString(LABEL_TABLE_NAME); + } + + public static String getLabelTableSchema() { + return CONFIG.getString(LABEL_TABLE_SCHEMA); + } + + public static String getLabelTableComment() { + return CONFIG.getString(LABEL_TABLE_COMMENT); + } + + public static String getLabelColumnComment() { + return CONFIG.getString(LABEL_COLUMN_COMMENT); + } + + public static String getLabelColumnName() { + return CONFIG.getString(LABEL_COLUMN_NAME); + } + + public static String getLabelDataType() { + return CONFIG.getString(LABEL_DATA_TYPE); + } + + public static String getLabelAutoIncrement() { + return CONFIG.getString(LABEL_AUTO_INCREMENT); + } + + public static String getLabelPrimary() { + return CONFIG.getString(LABEL_PRIMARY); + } + +} diff --git a/src/main/java/space/caoshd/otone/util/CfgUtils.java b/src/main/java/space/caoshd/otone/util/CfgUtils.java index 6cffc56..2096623 100644 --- a/src/main/java/space/caoshd/otone/util/CfgUtils.java +++ b/src/main/java/space/caoshd/otone/util/CfgUtils.java @@ -8,8 +8,7 @@ import java.util.List; public class CfgUtils { // 数据库配置 - public static final String DATABASE_NAME_SCHEMAS = "database.name.schemas"; - public static final String DATABASE_NAME_TABLES = "database.name.tables"; + public static final String DATABASE_TABLE_INCLUDES = "database.table.includes"; public static final String DATABASE_TABLE_PREFIXES = "database.table.prefixes"; public static final String DATABASE_TABLE_INVALID_COLUMNS = "database.table.invalid_columns"; public static final String DATABASE_TABLE_INVALID_VALUES = "database.table.invalid_values"; @@ -111,6 +110,10 @@ public class CfgUtils { // 私有化构造器 private CfgUtils() {} + public static List getDatabaseTableIncludes() { + return CONFIG.getStringList(DATABASE_TABLE_INCLUDES); + } + public static String getProjectBasePath() { return CONFIG.getString(PROJECT_PATH_BASE).replaceAll("\\\\", "/"); } @@ -415,7 +418,7 @@ public class CfgUtils { return getPackagePath(moduleName, packageName); } - public static String getEntityjavaPath(String className) { + public static String getEntityPath(String className) { String poPackagePath = getEntityPackagePath(); String suffix = CONFIG.getString(JAVA_NAME_SUFFIX_ENTITY, DEFAULT_JAVA_NAME_SUFFIX_ENTITY); String filename = getJavaFilename(className, suffix); diff --git a/src/main/java/space/caoshd/otone/util/SqlConsts.java b/src/main/java/space/caoshd/otone/util/SqlConsts.java deleted file mode 100644 index f55b7ca..0000000 --- a/src/main/java/space/caoshd/otone/util/SqlConsts.java +++ /dev/null @@ -1,23 +0,0 @@ -package space.caoshd.otone.util; - -public class SqlConsts { - - public static final String TABLE_SQL = "table.sql"; - public static final String TABLE_SQL_SCHEMA = "table.sql.schema"; - public static final String TABLE_SQL_SCHEMA_TABLE = "table.sql.schema.table"; - public static final String COLUMN_SQL_SCHEMA_TABLE = "column.sql.schema.table"; - public static final String INDEX_SQL_SCHEMA_TABLE = "index.sql.schema.table"; - public static final String LABEL_TABLE_NAME = "label.table_name"; - public static final String LABEL_TABLE_SCHEMA = "label.table_schema"; - public static final String LABEL_TABLE_COMMENT = "label.table_comment"; - public static final String LABEL_COLUMN_NAME = "label.column_name"; - public static final String LABEL_COLUMN_COMMENT = "label.column_comment"; - public static final String LABEL_INDEX_NAME = "label.index_name"; - public static final String LABEL_NON_UNIQUE = "label.non_unique"; - public static final String LABEL_DATA_TYPE = "label.data_type"; - public static final String LABEL_EXTRA = "label.extra"; - public static final String VALUE_AUTO_INCREMENT = "auto_increment"; - - private SqlConsts() {} - -} diff --git a/src/test/java/space/caoshd/otone/util/DBUtilsTest.java b/src/test/java/space/caoshd/otone/util/DBUtilsTest.java index 24925d7..2ee308b 100644 --- a/src/test/java/space/caoshd/otone/util/DBUtilsTest.java +++ b/src/test/java/space/caoshd/otone/util/DBUtilsTest.java @@ -2,9 +2,8 @@ package space.caoshd.otone.util; import org.junit.Assert; import org.junit.Test; -import space.caoshd.otone.helper.PropHelper; +import space.caoshd.otone.helper.SqlUtils; -import java.util.Arrays; import java.util.List; import java.util.Map; @@ -12,14 +11,8 @@ public class DBUtilsTest { @Test public void executeQuery() { - PropHelper sqlProperties = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); - String sql = sqlProperties.getString(SqlConsts.TABLE_SQL_SCHEMA_TABLE); - PropHelper configProperties = - new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH); - List schemas = configProperties.getStringList(CfgUtils.DATABASE_NAME_SCHEMAS); - List tables = configProperties.getStringList(CfgUtils.DATABASE_NAME_TABLES); - List params = Arrays.asList(schemas.get(0), tables.get(0)); - List> maps = DBUtils.list(sql, params); + String tableSql = SqlUtils.getTableSql(); + List> maps = DBUtils.list(tableSql); Assert.assertFalse(maps.isEmpty()); } } \ No newline at end of file diff --git a/src/test/resources/config/config.properties b/src/test/resources/config/config.properties index 6db717d..7785756 100644 --- a/src/test/resources/config/config.properties +++ b/src/test/resources/config/config.properties @@ -1,7 +1,7 @@ project.path.base=D:/workspace/otono-debug/ package.name.base=space.caoshd.navigator -database.name.schemas=otone -database.name.tables= +database.table.includes= +database.table.prefixes=t_,m_ output.cover_if_exists=true #project.path.java=src/main/java @@ -29,7 +29,7 @@ output.cover_if_exists=true #java.name.suffix.query=Query #java.name.suffix.mapper=Mapper #java.name.suffix.entity=Entity -#database.table.prefixes=t_,m_ +#database.name.schemas= #database.table.invalid_columns=delete_flag #database.table.invalid_values=1 #template.path.entity=template/entity.vm diff --git a/src/test/resources/config/h2.properties b/src/test/resources/config/h2.properties new file mode 100644 index 0000000..e3a25ab --- /dev/null +++ b/src/test/resources/config/h2.properties @@ -0,0 +1,5 @@ +table.sql=select table_schema, table_name, remarks as table_comment from information_schema.tables where table_schema = current_schema() +column.sql=select column_name, remarks as column_comment, data_type, case when is_identity = 'YES' then '1' else '0' end as auto_increment from information_schema.columns where table_schema = ? and table_name = ? +label.table_schema=TABLE_SCHEMA +label.table_name=TABLE_NAME +label.table_comment=TABLE_COMMENT \ No newline at end of file diff --git a/src/test/resources/config/mysql.properties b/src/test/resources/config/mysql.properties index 7be7ed2..357900b 100644 --- a/src/test/resources/config/mysql.properties +++ b/src/test/resources/config/mysql.properties @@ -1,15 +1,10 @@ -table.sql=select * from information_schema.tables where TABLE_SCHEMA not in ('mysql', 'information_schema', 'performance_schema', 'sys') -table.sql.schema=select * from information_schema.tables where table_schema = ? -table.sql.schema.table=select * from information_schema.tables where table_schema = ? and table_name = ? -column.sql.schema.table=select * from information_schema.columns where table_schema = ? and table_name = ? -index.sql.schema.table=select * from information_schema.statistics where table_schema = ? and table_name = ? +table.sql=select table_schema, table_name, table_comment from information_schema.tables where table_schema = DATABASE(); +column.sql=select column_name, column_comment, data_type, locate('auto_increment', extra) > 0 as auto_increment, case when column_key = 'PRI' then '1' else '0' end as `primary` from information_schema.columns where table_schema = ? and table_name = ? label.table_schema=TABLE_SCHEMA label.table_name=TABLE_NAME label.table_comment=TABLE_COMMENT label.column_name=COLUMN_NAME label.column_comment=COLUMN_COMMENT -label.index_name=INDEX_NAME -label.non_unique=NON_UNIQUE label.data_type=DATA_TYPE -label.extra=EXTRA +label.primary=PRIMARY diff --git a/src/test/resources/template/controller.vm b/src/test/resources/template/controller.vm index 2277075..2f3c50a 100644 --- a/src/test/resources/template/controller.vm +++ b/src/test/resources/template/controller.vm @@ -130,69 +130,4 @@ public class ${ClassName} { return ${serviceName}.count(req); } -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end") -#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 通过唯一键查询单个$!{tbl.comment} - * ${paramComments} - * @return 单个$!{tbl.comment} - */ - ${ResName} ${methodName}(${paramNames}) { - ${EntityName} entity = ${serviceName}.${methodName}(${paramValues}); - ${ResName} res = new ${ResName}(); - BeanUtils.copyProperties(entity, res); - return res; - } - -#end -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="deleteBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end") -#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 通过唯一键删除单个$!{tbl.comment} - * ${paramComments} - * @return 影响记录数 - */ - Integer $methodName(${paramNames}) { - return ${serviceName}.${methodName}(${paramValues}); - } - -#end -#if(${invalidColumnExists}) -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="invalidBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end") -#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 逻辑删除$!{tbl.comment} - * ${paramComments} - * @return 影响记录数 - */ - Integer $methodName(${paramNames}){ - return ${serviceName}.${methodName}(${paramValues}); - } - -#end -#end } \ No newline at end of file diff --git a/src/test/resources/template/mapper.vm b/src/test/resources/template/mapper.vm index 3baa49b..eddd25d 100644 --- a/src/test/resources/template/mapper.vm +++ b/src/test/resources/template/mapper.vm @@ -115,59 +115,4 @@ public interface ${ClassName} { @Param("query") ${QueryName} query ); -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 通过唯一键查询单个$!{tbl.comment} - * ${paramComments} - * @return 单个$!{tbl.comment} - */ - ${EntityName} $methodName( - ${paramNames} - ); - -#end -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="deleteBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 通过唯一键删除单个$!{tbl.comment} - * ${paramComments} - * @return 影响记录数 - */ - Integer $methodName( - ${paramNames} - ); - -#end -#if(${invalidColumnExists}) -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="invalidBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 逻辑删除$!{tbl.comment} - * ${paramComments} - * @return 影响记录数 - */ - Integer $methodName( - ${paramNames} - ); -#end -#end } \ No newline at end of file diff --git a/src/test/resources/template/service.impl.vm b/src/test/resources/template/service.impl.vm index 1f2a873..0b5d180 100644 --- a/src/test/resources/template/service.impl.vm +++ b/src/test/resources/template/service.impl.vm @@ -148,69 +148,4 @@ public class ${ClassName} implements ${InterfaceName} { return ${mapperName}.count(query); } -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end") -#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 通过唯一键查询单个$!{tbl.comment} - * ${paramComments} - * @return 单个$!{tbl.comment} - */ - @Override - public ${EntityName} $methodName(${paramNames}) { - return ${mapperName}.$methodName(${paramValues}); - } - -#end -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="deleteBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end") -#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 通过唯一键删除单个$!{tbl.comment} - * ${paramComments} - * @return 影响记录数 - */ - @Override - public Integer $methodName(${paramNames}) { - return ${mapperName}.$methodName(${paramValues}); - } - -#end -#if(${invalidColumnExists}) -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="invalidBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end") -#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 逻辑删除$!{tbl.comment} - * ${paramComments} - * @return 影响记录数 - */ - @Override - public Integer $methodName(${paramNames}) { - return ${mapperName}.$methodName(${paramValues}); - } - -#end -#end } \ No newline at end of file diff --git a/src/test/resources/template/service.intf.vm b/src/test/resources/template/service.intf.vm index 61a72e1..16ec41f 100644 --- a/src/test/resources/template/service.intf.vm +++ b/src/test/resources/template/service.intf.vm @@ -90,54 +90,4 @@ public interface $InterfaceName { */ Long count(${ReqName} req); -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 通过唯一键查询单个$!{tbl.comment} - * ${paramComments} - * @return 单个$!{tbl.comment} - */ - ${EntityName} $methodName(${paramNames}); - -#end -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="deleteBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 通过唯一键删除单个$!{tbl.comment} - * ${paramComments} - * @return 影响记录数 - */ - Integer $methodName(${paramNames}); - -#end -#if(${invalidColumnExists}) -#foreach($indexColumns in ${tbl.indexes}) -#set(${methodNameWithSuffix}="invalidBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") -#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") -#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end") -#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") -#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) - - * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") - /** - * 逻辑删除$!{tbl.comment} - * ${paramComments} - * @return 影响记录数 - */ - Integer $methodName(${paramNames}); - -#end -#end } \ No newline at end of file