From 53a1bf05569c5e11ddc74f8a5baccf43a3f7577d Mon Sep 17 00:00:00 2001 From: caoshd Date: Sat, 30 Mar 2024 09:48:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=20=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E8=A1=A8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++ .../{FieldBuilder.java => ColumnBuilder.java} | 38 +++++-- .../caoshd/otone/builder/IndexBuilder.java | 52 +++++++++ .../caoshd/otone/builder/TableBuilder.java | 101 +++++++++++++++--- .../space/caoshd/otone/entity/ColumnInfo.java | 18 ++-- .../space/caoshd/otone/entity/IndexInfo.java | 34 ++++++ .../space/caoshd/otone/entity/TableInfo.java | 67 ++++++------ .../otone/extension/ColumnAddonAble.java | 9 ++ .../otone/extension/TableAddonAble.java | 9 ++ .../space/caoshd/otone/util/JsonUtils.java | 13 +++ .../space/caoshd/otone/util/SqlConsts.java | 8 ++ .../otone/builder/ColumnBuilderTest.java | 10 ++ .../otone/builder/TableBuilderTest.java | 10 +- src/test/resources/logback.xml | 11 ++ src/test/resources/mysql.properties | 6 +- 15 files changed, 312 insertions(+), 80 deletions(-) rename src/main/java/space/caoshd/otone/builder/{FieldBuilder.java => ColumnBuilder.java} (65%) create mode 100644 src/main/java/space/caoshd/otone/builder/IndexBuilder.java create mode 100644 src/main/java/space/caoshd/otone/entity/IndexInfo.java create mode 100644 src/main/java/space/caoshd/otone/extension/ColumnAddonAble.java create mode 100644 src/main/java/space/caoshd/otone/extension/TableAddonAble.java create mode 100644 src/main/java/space/caoshd/otone/util/JsonUtils.java create mode 100644 src/test/java/space/caoshd/otone/builder/ColumnBuilderTest.java create mode 100644 src/test/resources/logback.xml diff --git a/pom.xml b/pom.xml index 6e1697a..3eac14d 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,12 @@ logback-classic 1.4.14 + + com.alibaba + fastjson + 2.0.48 + + org.junit.jupiter junit-jupiter diff --git a/src/main/java/space/caoshd/otone/builder/FieldBuilder.java b/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java similarity index 65% rename from src/main/java/space/caoshd/otone/builder/FieldBuilder.java rename to src/main/java/space/caoshd/otone/builder/ColumnBuilder.java index c7d035d..7366a08 100644 --- a/src/main/java/space/caoshd/otone/builder/FieldBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java @@ -3,10 +3,11 @@ package space.caoshd.otone.builder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import space.caoshd.otone.entity.ColumnInfo; +import space.caoshd.otone.extension.ColumnAddonAble; import space.caoshd.otone.tool.PropertyTools; -import space.caoshd.otone.util.ConfigConsts; import space.caoshd.otone.util.DataTypeUtils; import space.caoshd.otone.util.DatabaseUtils; +import space.caoshd.otone.util.JsonUtils; import space.caoshd.otone.util.PropertiesConsts; import space.caoshd.otone.util.SqlConsts; import space.caoshd.otone.util.StringUtils; @@ -16,29 +17,42 @@ import java.util.Arrays; import java.util.List; import java.util.Map; -public class FieldBuilder { - private static final Logger LOGGER = LoggerFactory.getLogger(TableBuilder.class); +public class ColumnBuilder { + + private static final Logger LOGGER = LoggerFactory.getLogger(ColumnBuilder.class); private static final PropertyTools sqlProperties = new PropertyTools(PropertiesConsts.MYSQL_PROPERTIES_PATH); - private static final PropertyTools configProperties = - new PropertyTools(PropertiesConsts.CONFIG_PROPERTIES_PATH); + private final String schemaName; + private final String tableName; + + public ColumnBuilder(String schemaName, String tableName) { + this.schemaName = schemaName; + this.tableName = tableName; + } - public static List loadFieldInfo(String schemaName, String tableName) { + private final List columnAddonAbles = new ArrayList<>(); + + public ColumnBuilder addColumnAddonAble(ColumnAddonAble columnAddonAble) { + this.columnAddonAbles.add(columnAddonAble); + return this; + } + + public List build() { String sql = sqlProperties.getString(SqlConsts.COLUMN_SQL_SCHEMA_TABLE); List params = Arrays.asList(schemaName, tableName); List> columns = DatabaseUtils.list(sql, params); List result = new ArrayList<>(); - for (Map field : columns) { - result.add(createFiledInfo(field)); + for (Map column : columns) { + result.add(createColumnInfo(column)); } return result; } - private static ColumnInfo createFiledInfo(Map column) { + private ColumnInfo createColumnInfo(Map column) { ColumnInfo result = new ColumnInfo(); String columnComment = sqlProperties.getString(SqlConsts.LABEL_COLUMN_COMMENT); result.setComment(column.get(columnComment)); @@ -52,6 +66,12 @@ public class FieldBuilder { result.setJavaDataType(javaDataType); String extra = sqlProperties.getString(SqlConsts.LABEL_EXTRA); result.setAutoIncrement(column.get(extra).contains(SqlConsts.VALUE_AUTO_INCREMENT)); + + for (ColumnAddonAble columnAddonAble : columnAddonAbles) { + columnAddonAble.addon(result, result.getAddonInfo()); + } + + 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 new file mode 100644 index 0000000..28fb2f8 --- /dev/null +++ b/src/main/java/space/caoshd/otone/builder/IndexBuilder.java @@ -0,0 +1,52 @@ +package space.caoshd.otone.builder; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import space.caoshd.otone.entity.IndexInfo; +import space.caoshd.otone.tool.PropertyTools; +import space.caoshd.otone.util.DatabaseUtils; +import space.caoshd.otone.util.JsonUtils; +import space.caoshd.otone.util.PropertiesConsts; +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 PropertyTools sqlProperties = + new PropertyTools(PropertiesConsts.MYSQL_PROPERTIES_PATH); + + public static List loadIndexInfo(String schemaName, String tableName) { + + String sql = sqlProperties.getString(SqlConsts.INDEX_SQL_SCHEMA_TABLE); + List params = Arrays.asList(schemaName, tableName); + List> indexes = DatabaseUtils.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 = sqlProperties.getString(SqlConsts.LABEL_COLUMN_NAME); + result.setColumnName(index.get(columnName)); + + String indexName = sqlProperties.getString(SqlConsts.LABEL_INDEX_NAME); + result.setIndexName(index.get(indexName)); + + String nonUnique = sqlProperties.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/TableBuilder.java b/src/main/java/space/caoshd/otone/builder/TableBuilder.java index 1dcd52f..d911e31 100644 --- a/src/main/java/space/caoshd/otone/builder/TableBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/TableBuilder.java @@ -2,10 +2,16 @@ 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.extension.ColumnAddonAble; +import space.caoshd.otone.extension.TableAddonAble; import space.caoshd.otone.tool.PropertyTools; import space.caoshd.otone.util.ConfigConsts; +import space.caoshd.otone.util.DataTypeUtils; import space.caoshd.otone.util.DatabaseUtils; +import space.caoshd.otone.util.JsonUtils; import space.caoshd.otone.util.PropertiesConsts; import space.caoshd.otone.util.SqlConsts; import space.caoshd.otone.util.StringUtils; @@ -13,10 +19,12 @@ import space.caoshd.otone.util.StringUtils; 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); @@ -27,7 +35,21 @@ public class TableBuilder { private static final PropertyTools configProperties = new PropertyTools(PropertiesConsts.CONFIG_PROPERTIES_PATH); - public static List loadTableInfo() { + private final List tableAddonAbles = new ArrayList<>(); + + public TableBuilder addTableAddonAble(TableAddonAble tableAddonAble) { + this.tableAddonAbles.add(tableAddonAble); + return this; + } + + private final List columnAddonAbles = new ArrayList<>(); + + public TableBuilder addColumnAddonAble(ColumnAddonAble columnAddonAble) { + this.columnAddonAbles.add(columnAddonAble); + return this; + } + + public List build() { List result = new ArrayList<>(); List schemaNames = configProperties.getStrings(ConfigConsts.SCHEMA_NAMES); if (schemaNames.isEmpty()) { @@ -38,14 +60,14 @@ public class TableBuilder { } } else { for (String schemaName : schemaNames) { - result.addAll(loadTableInfo(schemaName)); + result.addAll(build(schemaName)); } } - System.out.println(result); + return result; } - public static List loadTableInfo(String schemaName) { + public List build(String schemaName) { List result = new ArrayList<>(); List tableNames = configProperties.getStrings(ConfigConsts.TABLE_NAMES); if (tableNames.isEmpty()) { @@ -57,7 +79,7 @@ public class TableBuilder { } } else { for (String tableName : tableNames) { - TableInfo tableInfo = loadTableInfo(schemaName, tableName); + TableInfo tableInfo = build(schemaName, tableName); if (Objects.nonNull(tableInfo)) { result.add(tableInfo); } @@ -66,7 +88,7 @@ public class TableBuilder { return result; } - public static TableInfo loadTableInfo(String schemaName, String tableName) { + public TableInfo build(String schemaName, String tableName) { String sql = sqlProperties.getString(SqlConsts.TABLE_SQL_SCHEMA_TABLE); List params = Arrays.asList(schemaName, tableName); Map table = DatabaseUtils.one(sql, params); @@ -77,17 +99,20 @@ public class TableBuilder { return createTableInfo(table); } - private static TableInfo createTableInfo(Map table) { + private TableInfo createTableInfo(Map table) { TableInfo result = new TableInfo(); - String tableSchema = sqlProperties.getString(SqlConsts.LABEL_TABLE_SCHEMA); - result.setTableSchema(table.get(tableSchema)); + String tableSchemaLabel = sqlProperties.getString(SqlConsts.LABEL_TABLE_SCHEMA); + String tableSchema = table.get(tableSchemaLabel); + result.setTableSchema(tableSchema); - String tableComment = sqlProperties.getString(SqlConsts.LABEL_TABLE_COMMENT); - result.setComment(table.get(tableComment)); + String tableCommentLabel = sqlProperties.getString(SqlConsts.LABEL_TABLE_COMMENT); + String comment = table.get(tableCommentLabel); + result.setComment(comment); - String tableName = sqlProperties.getString(SqlConsts.LABEL_TABLE_NAME); - result.setTableName(table.get(tableName)); + String tableNameLabel = sqlProperties.getString(SqlConsts.LABEL_TABLE_NAME); + String tableName = table.get(tableNameLabel); + result.setTableName(tableName); String tableNameWithoutPrefix = getTableNameWithoutPrefix(result.getTableName()); String beanName = StringUtils.toCamelCase(tableNameWithoutPrefix, true); @@ -98,16 +123,60 @@ public class TableBuilder { ConfigConsts.VALUE_BEAN_SUFFIX ); result.setQueryBeanName(beanName + suffix); + List columnInfo = loadColumnInfo(tableSchema, tableName); + result.setColumnInfo(columnInfo); - result.setFieldInfoList(FieldBuilder.loadFieldInfo( + result.setDateExists(columnInfo.stream() + .anyMatch(column -> DataTypeUtils.JAVA_TYPE_DATE.equals(column.getJavaDataType()))); + result.setDecimalExists(columnInfo.stream() + .anyMatch(column -> DataTypeUtils.JAVA_TYPE_DECIMAL.equals(column.getJavaDataType()))); + + 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.setIndexInfo(indexInfo); + + for (TableAddonAble tableAddonAble : tableAddonAbles) { + tableAddonAble.addon(result, result.getAddonInfo()); + } + LOGGER.debug(JsonUtils.toJson(result)); return result; } - private static String getTableNameWithoutPrefix(String tableNameWithoutPrefix) { + private List loadColumnInfo(String tableSchema, String tableName) { + ColumnBuilder columnBuilder = new ColumnBuilder(tableSchema, tableName); + for (ColumnAddonAble columnAddonAble : columnAddonAbles) { + columnBuilder.addColumnAddonAble(columnAddonAble); + } + return columnBuilder.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.")); + } + + private String getTableNameWithoutPrefix(String tableNameWithoutPrefix) { List tablePrefixes = configProperties.getStrings(ConfigConsts.TABLE_PREFIXIES); for (String tablePrefix : tablePrefixes) { diff --git a/src/main/java/space/caoshd/otone/entity/ColumnInfo.java b/src/main/java/space/caoshd/otone/entity/ColumnInfo.java index 1a4b2ce..e4f0563 100644 --- a/src/main/java/space/caoshd/otone/entity/ColumnInfo.java +++ b/src/main/java/space/caoshd/otone/entity/ColumnInfo.java @@ -1,5 +1,8 @@ package space.caoshd.otone.entity; +import java.util.HashMap; +import java.util.Map; + public class ColumnInfo { private String columnName; @@ -14,6 +17,8 @@ public class ColumnInfo { private Boolean autoIncrement; + private final Map addonInfo = new HashMap<>(); + public String getColumnName() { return columnName; } @@ -62,16 +67,7 @@ public class ColumnInfo { this.autoIncrement = autoIncrement; } - @Override - public String toString() { - final StringBuffer sb = new StringBuffer("ColumnInfo{"); - sb.append("columnName='").append(columnName).append('\''); - sb.append(", propertyName='").append(propertyName).append('\''); - sb.append(", sqlType='").append(sqlDataType).append('\''); - sb.append(", javaType='").append(javaDataType).append('\''); - sb.append(", comment='").append(comment).append('\''); - sb.append(", autoIncrement=").append(autoIncrement); - sb.append('}'); - return sb.toString(); + public Map getAddonInfo() { + return addonInfo; } } diff --git a/src/main/java/space/caoshd/otone/entity/IndexInfo.java b/src/main/java/space/caoshd/otone/entity/IndexInfo.java new file mode 100644 index 0000000..7d67ec0 --- /dev/null +++ b/src/main/java/space/caoshd/otone/entity/IndexInfo.java @@ -0,0 +1,34 @@ +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/entity/TableInfo.java b/src/main/java/space/caoshd/otone/entity/TableInfo.java index 9dc4f52..3110d3e 100644 --- a/src/main/java/space/caoshd/otone/entity/TableInfo.java +++ b/src/main/java/space/caoshd/otone/entity/TableInfo.java @@ -1,6 +1,7 @@ package space.caoshd.otone.entity; import java.util.ArrayList; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -17,15 +18,15 @@ public class TableInfo { private String queryBeanName; - private List columnInfoList = new ArrayList<>(); + private Boolean dateExists; - private Map> indexMap = new LinkedHashMap<>(); + private Boolean decimalExists; - private Boolean dateExists; + private List columnInfo = new ArrayList<>(); - private Boolean dateTimeExists; + private Map> indexInfo = new LinkedHashMap<>(); - private Boolean bigDecimalExists; + private final Map addonInfo = new HashMap<>(); public String getComment() { return comment; @@ -67,47 +68,39 @@ public class TableInfo { this.queryBeanName = queryBeanName; } - public List getFieldInfoList() { - return columnInfoList; + public Boolean getDateExists() { + return dateExists; } - public void setFieldInfoList(List columnInfoList) { - this.columnInfoList = columnInfoList; + public void setDateExists(Boolean dateExists) { + this.dateExists = dateExists; } - public Map> getIndexMap() { - return indexMap; + public Boolean getDecimalExists() { + return decimalExists; } - public void setIndexMap(Map> indexMap) { - this.indexMap = indexMap; + public void setDecimalExists(Boolean decimalExists) { + this.decimalExists = decimalExists; } - public Boolean getDateExists() { - return dateExists; + public List getColumnInfo() { + return columnInfo; + } + + public void setColumnInfo(List columnInfo) { + this.columnInfo = columnInfo; + } + + public Map> getIndexInfo() { + return indexInfo; + } + + public void setIndexInfo(Map> indexInfo) { + this.indexInfo = indexInfo; } - public Boolean getBigDecimalExists() { - return bigDecimalExists; - } - - - @Override - public String toString() { - return String.format( - "TableInfo{comment='%s', tableSchema='%s', tableName='%s', beanName='%s', " - + "queryBeanName='%s', fieldInfoList=%s, indexMap=%s," - + "dateExists=%s, dateTimeExists=%s, bigDecimalExists=%s}", - comment, - tableSchema, - tableName, - beanName, - queryBeanName, - columnInfoList, - indexMap, - dateExists, - dateTimeExists, - bigDecimalExists - ); + public Map getAddonInfo() { + return addonInfo; } } diff --git a/src/main/java/space/caoshd/otone/extension/ColumnAddonAble.java b/src/main/java/space/caoshd/otone/extension/ColumnAddonAble.java new file mode 100644 index 0000000..17b2416 --- /dev/null +++ b/src/main/java/space/caoshd/otone/extension/ColumnAddonAble.java @@ -0,0 +1,9 @@ +package space.caoshd.otone.extension; + +import space.caoshd.otone.entity.ColumnInfo; + +import java.util.Map; + +public interface ColumnAddonAble { + void addon(ColumnInfo tableInfo, Map addInfo); +} diff --git a/src/main/java/space/caoshd/otone/extension/TableAddonAble.java b/src/main/java/space/caoshd/otone/extension/TableAddonAble.java new file mode 100644 index 0000000..b62cf57 --- /dev/null +++ b/src/main/java/space/caoshd/otone/extension/TableAddonAble.java @@ -0,0 +1,9 @@ +package space.caoshd.otone.extension; + +import space.caoshd.otone.entity.TableInfo; + +import java.util.Map; + +public interface TableAddonAble { + void addon(TableInfo tableInfo, Map addInfo); +} diff --git a/src/main/java/space/caoshd/otone/util/JsonUtils.java b/src/main/java/space/caoshd/otone/util/JsonUtils.java new file mode 100644 index 0000000..c003532 --- /dev/null +++ b/src/main/java/space/caoshd/otone/util/JsonUtils.java @@ -0,0 +1,13 @@ +package space.caoshd.otone.util; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.serializer.SerializerFeature; + +public class JsonUtils { + public static String toJson(Object object) { + return JSON.toJSONString( + object, + SerializerFeature.DisableCircularReferenceDetect + ); + } +} diff --git a/src/main/java/space/caoshd/otone/util/SqlConsts.java b/src/main/java/space/caoshd/otone/util/SqlConsts.java index 84aab52..4b2cdd5 100644 --- a/src/main/java/space/caoshd/otone/util/SqlConsts.java +++ b/src/main/java/space/caoshd/otone/util/SqlConsts.java @@ -2,6 +2,8 @@ package space.caoshd.otone.util; public class SqlConsts { + + private SqlConsts() {} public static final String TABLE_SQL = "table.sql"; @@ -12,6 +14,8 @@ public class SqlConsts { 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"; @@ -22,6 +26,10 @@ public class SqlConsts { 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"; diff --git a/src/test/java/space/caoshd/otone/builder/ColumnBuilderTest.java b/src/test/java/space/caoshd/otone/builder/ColumnBuilderTest.java new file mode 100644 index 0000000..b81a11a --- /dev/null +++ b/src/test/java/space/caoshd/otone/builder/ColumnBuilderTest.java @@ -0,0 +1,10 @@ +package space.caoshd.otone.builder; + +import org.junit.jupiter.api.Test; + +class ColumnBuilderTest { + + @Test + void loadColumnInfo() { + } +} \ No newline at end of file diff --git a/src/test/java/space/caoshd/otone/builder/TableBuilderTest.java b/src/test/java/space/caoshd/otone/builder/TableBuilderTest.java index 126d49c..a22e1f5 100644 --- a/src/test/java/space/caoshd/otone/builder/TableBuilderTest.java +++ b/src/test/java/space/caoshd/otone/builder/TableBuilderTest.java @@ -5,14 +5,14 @@ import space.caoshd.otone.entity.TableInfo; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; - class TableBuilderTest { @Test void loadTableInfo() { - List tableInfos = - TableBuilder.loadTableInfo(); - System.out.println(tableInfos); + List tableInfoList = new TableBuilder().addTableAddonAble(( + tableInfo, addonInfo + ) -> addonInfo.put("author", "caoshd")) + .addColumnAddonAble((columnInfo, addonInfo) -> System.out.println(addonInfo)) + .build(); } } \ No newline at end of file diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml new file mode 100644 index 0000000..44ac183 --- /dev/null +++ b/src/test/resources/logback.xml @@ -0,0 +1,11 @@ + + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %-21logger{20}: %msg%n + + + + + + \ No newline at end of file diff --git a/src/test/resources/mysql.properties b/src/test/resources/mysql.properties index 9758435..7be7ed2 100644 --- a/src/test/resources/mysql.properties +++ b/src/test/resources/mysql.properties @@ -1,13 +1,15 @@ 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 = ? +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 = ? 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