【update】注释与使用常量替换魔法值
This commit is contained in:
+45
-26
@@ -47,7 +47,7 @@ public class DbReadTableUtil {
|
|||||||
printStream.println(ArrayUtils.toString(listTableName()));
|
printStream.println(ArrayUtils.toString(listTableName()));
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 获取所有表名的列表
|
* 获取所有表名的集合
|
||||||
* @date 2021/4/2 4:29
|
* @date 2021/4/2 4:29
|
||||||
* @param
|
* @param
|
||||||
* @return java.util.List<java.lang.String>
|
* @return java.util.List<java.lang.String>
|
||||||
@@ -60,6 +60,7 @@ public class DbReadTableUtil {
|
|||||||
Class.forName(CodeConfigProperties.driverName);
|
Class.forName(CodeConfigProperties.driverName);
|
||||||
connection = DriverManager.getConnection(CodeConfigProperties.databaseUrl, CodeConfigProperties.username, CodeConfigProperties.password);
|
connection = DriverManager.getConnection(CodeConfigProperties.databaseUrl, CodeConfigProperties.username, CodeConfigProperties.password);
|
||||||
statement = connection.createStatement(1005, 1007);
|
statement = connection.createStatement(1005, 1007);
|
||||||
|
// 表格所属的库
|
||||||
String catalog = connection.getCatalog();
|
String catalog = connection.getCatalog();
|
||||||
log.info(" connect databaseName : " + catalog);
|
log.info(" connect databaseName : " + catalog);
|
||||||
if (CodeConfigProperties.databaseType.equals(DbConvertDef.MYSQL)) {
|
if (CodeConfigProperties.databaseType.equals(DbConvertDef.MYSQL)) {
|
||||||
@@ -109,7 +110,12 @@ public class DbReadTableUtil {
|
|||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 获取一个表的所有列(字段)信息集合
|
||||||
|
* @date 2021/4/2 9:29
|
||||||
|
* @param tableName
|
||||||
|
* @return java.util.List<com.jero.codegenerate.generate.pojo.ColumnVo>
|
||||||
|
*/
|
||||||
public static List<ColumnVo> listColumns(String tableName) throws Exception {
|
public static List<ColumnVo> listColumns(String tableName) throws Exception {
|
||||||
String sqlStr = null;
|
String sqlStr = null;
|
||||||
ArrayList list = new ArrayList();
|
ArrayList list = new ArrayList();
|
||||||
@@ -119,25 +125,26 @@ public class DbReadTableUtil {
|
|||||||
Class.forName(com.jero.codegenerate.properties.CodeConfigProperties.driverName);
|
Class.forName(com.jero.codegenerate.properties.CodeConfigProperties.driverName);
|
||||||
connection = DriverManager.getConnection(com.jero.codegenerate.properties.CodeConfigProperties.databaseUrl, com.jero.codegenerate.properties.CodeConfigProperties.username, com.jero.codegenerate.properties.CodeConfigProperties.password);
|
connection = DriverManager.getConnection(com.jero.codegenerate.properties.CodeConfigProperties.databaseUrl, com.jero.codegenerate.properties.CodeConfigProperties.username, com.jero.codegenerate.properties.CodeConfigProperties.password);
|
||||||
statement = connection.createStatement(1005, 1007);
|
statement = connection.createStatement(1005, 1007);
|
||||||
|
// 表格所属的库
|
||||||
String catalog = connection.getCatalog();
|
String catalog = connection.getCatalog();
|
||||||
log.info(" connect databaseName : " + catalog);
|
log.info(" connect databaseName : " + catalog);
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.MYSQL)) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.MYSQL)) {
|
||||||
// mysql查询所有列sql
|
// mysql查询表的所有列信息sql
|
||||||
sqlStr = MessageFormat.format(DbConvertDef.MYSQL_ALLCOLUMNS_SQL, TableConvert.c(tableName), TableConvert.c(catalog));
|
sqlStr = MessageFormat.format(DbConvertDef.MYSQL_ALLCOLUMNS_SQL, TableConvert.c(tableName), TableConvert.c(catalog));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.ORACLE)) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.ORACLE)) {
|
||||||
// oracle查询所有列sql
|
// oracle查询表的所有列信息sql
|
||||||
sqlStr = MessageFormat.format(DbConvertDef.ORACLE_ALLCOLUMNS_SQL, TableConvert.c(tableName.toUpperCase()));
|
sqlStr = MessageFormat.format(DbConvertDef.ORACLE_ALLCOLUMNS_SQL, TableConvert.c(tableName.toUpperCase()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.POSTGRESQL)) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.POSTGRESQL)) {
|
||||||
// postgresql查询所有列sql
|
// postgresql查询表的所有列信息sql
|
||||||
sqlStr = MessageFormat.format(DbConvertDef.POSTGRESQL_ALLCOLUMNS_SQL, TableConvert.c(tableName), TableConvert.c(tableName));
|
sqlStr = MessageFormat.format(DbConvertDef.POSTGRESQL_ALLCOLUMNS_SQL, TableConvert.c(tableName), TableConvert.c(tableName));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.SQLSERVER)) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.SQLSERVER)) {
|
||||||
// sqlserver查询所有列sql
|
// sqlserver查询表的所有列信息sql
|
||||||
sqlStr = MessageFormat.format(DbConvertDef.SQLSERVER_ALLCOLUMNS_SQL, TableConvert.c(tableName));
|
sqlStr = MessageFormat.format(DbConvertDef.SQLSERVER_ALLCOLUMNS_SQL, TableConvert.c(tableName));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -243,22 +250,27 @@ public class DbReadTableUtil {
|
|||||||
Class.forName(com.jero.codegenerate.properties.CodeConfigProperties.driverName);
|
Class.forName(com.jero.codegenerate.properties.CodeConfigProperties.driverName);
|
||||||
connection = DriverManager.getConnection(com.jero.codegenerate.properties.CodeConfigProperties.databaseUrl, com.jero.codegenerate.properties.CodeConfigProperties.username, com.jero.codegenerate.properties.CodeConfigProperties.password);
|
connection = DriverManager.getConnection(com.jero.codegenerate.properties.CodeConfigProperties.databaseUrl, com.jero.codegenerate.properties.CodeConfigProperties.username, com.jero.codegenerate.properties.CodeConfigProperties.password);
|
||||||
statement = connection.createStatement(1005, 1007);
|
statement = connection.createStatement(1005, 1007);
|
||||||
|
// 表格所属的库
|
||||||
String catalog = connection.getCatalog();
|
String catalog = connection.getCatalog();
|
||||||
log.info(" connect databaseName : " + catalog);
|
log.info(" connect databaseName : " + catalog);
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("mysql")) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.MYSQL)) {
|
||||||
sqlStr = MessageFormat.format("select column_name,data_type,column_comment,numeric_precision,numeric_scale,character_maximum_length,is_nullable nullable from information_schema.columns where table_name = {0} and table_schema = {1} order by ORDINAL_POSITION", TableConvert.c(tableName), TableConvert.c(catalog));
|
// mysql查询表的所有列信息sql
|
||||||
|
sqlStr = MessageFormat.format(DbConvertDef.MYSQL_ALLCOLUMNS_SQL, TableConvert.c(tableName), TableConvert.c(catalog));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("oracle")) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.ORACLE)) {
|
||||||
sqlStr = MessageFormat.format(" select colstable.column_name column_name, colstable.data_type data_type, commentstable.comments column_comment, colstable.Data_Precision column_precision, colstable.Data_Scale column_scale,colstable.Char_Length,colstable.nullable from user_tab_cols colstable inner join user_col_comments commentstable on colstable.column_name = commentstable.column_name where colstable.table_name = commentstable.table_name and colstable.table_name = {0}", TableConvert.c(tableName.toUpperCase()));
|
// oracle查询表的所有列信息sql
|
||||||
|
sqlStr = MessageFormat.format(DbConvertDef.ORACLE_ALLCOLUMNS_SQL, TableConvert.c(tableName.toUpperCase()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("postgresql")) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.POSTGRESQL)) {
|
||||||
sqlStr = MessageFormat.format("select icm.column_name as field,icm.udt_name as type,fieldtxt.descript as comment, icm.numeric_precision_radix as column_precision ,icm.numeric_scale as column_scale ,icm.character_maximum_length as Char_Length,icm.is_nullable as attnotnull from information_schema.columns icm, (SELECT A.attnum,( SELECT description FROM pg_catalog.pg_description WHERE objoid = A.attrelid AND objsubid = A.attnum ) AS descript,A.attname FROM\tpg_catalog.pg_attribute A WHERE A.attrelid = ( SELECT oid FROM pg_class WHERE relname = {0} ) AND A.attnum > 0 AND NOT A.attisdropped ORDER BY\tA.attnum ) fieldtxt where icm.table_name={1} and fieldtxt.attname = icm.column_name", TableConvert.c(tableName), TableConvert.c(tableName));
|
// postgresql查询表的所有列信息sql
|
||||||
|
sqlStr = MessageFormat.format(DbConvertDef.POSTGRESQL_ALLCOLUMNS_SQL, TableConvert.c(tableName), TableConvert.c(tableName));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("sqlserver")) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.SQLSERVER)) {
|
||||||
sqlStr = MessageFormat.format("select distinct cast(a.name as varchar(50)) column_name, cast(b.name as varchar(50)) data_type, cast(e.value as NVARCHAR(200)) comment, cast(ColumnProperty(a.object_id,a.Name,'''Precision''') as int) num_precision, cast(ColumnProperty(a.object_id,a.Name,'''Scale''') as int) num_scale, a.max_length, (case when a.is_nullable=1 then '''y''' else '''n''' end) nullable,column_id from sys.columns a left join sys.types b on a.user_type_id=b.user_type_id left join (select top 1 * from sys.objects where type = '''U''' and name ={0} order by name) c on a.object_id=c.object_id left join sys.extended_properties e on e.major_id=c.object_id and e.minor_id=a.column_id and e.class=1 where c.name={0} order by a.column_id", TableConvert.c(tableName));
|
// sqlserver查询表的所有列信息sql
|
||||||
|
sqlStr = MessageFormat.format(DbConvertDef.SQLSERVER_ALLCOLUMNS_SQL, TableConvert.c(tableName));
|
||||||
}
|
}
|
||||||
|
|
||||||
resultSet = statement.executeQuery(sqlStr);
|
resultSet = statement.executeQuery(sqlStr);
|
||||||
@@ -343,8 +355,13 @@ public class DbReadTableUtil {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
public static boolean c(String var0) {
|
* 该方法暂未用到
|
||||||
|
* @date 2021/4/2 9:18
|
||||||
|
* @param tableName
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public static boolean c(String tableName) {
|
||||||
String sqlStr = null;
|
String sqlStr = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -352,22 +369,24 @@ public class DbReadTableUtil {
|
|||||||
Class.forName(com.jero.codegenerate.properties.CodeConfigProperties.driverName);
|
Class.forName(com.jero.codegenerate.properties.CodeConfigProperties.driverName);
|
||||||
connection = DriverManager.getConnection(com.jero.codegenerate.properties.CodeConfigProperties.databaseUrl, com.jero.codegenerate.properties.CodeConfigProperties.username, com.jero.codegenerate.properties.CodeConfigProperties.password);
|
connection = DriverManager.getConnection(com.jero.codegenerate.properties.CodeConfigProperties.databaseUrl, com.jero.codegenerate.properties.CodeConfigProperties.username, com.jero.codegenerate.properties.CodeConfigProperties.password);
|
||||||
statement = connection.createStatement(1005, 1007);
|
statement = connection.createStatement(1005, 1007);
|
||||||
String var3 = connection.getCatalog();
|
// 表格所属的库
|
||||||
log.info(" connect databaseName : " + var3);
|
String catalog = connection.getCatalog();
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("mysql")) {
|
log.info(" connect databaseName : " + catalog);
|
||||||
sqlStr = "select column_name,data_type,column_comment,0,0 from information_schema.columns where table_name = '" + var0 + "' and table_schema = '" + var3 + "'";
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.MYSQL)) {
|
||||||
|
// mysql获取表的列信息sql
|
||||||
|
sqlStr = "select column_name,data_type,column_comment,0,0 from information_schema.columns where table_name = '" + tableName + "' and table_schema = '" + catalog + "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("oracle")) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.ORACLE)) {
|
||||||
sqlStr = "select colstable.column_name column_name, colstable.data_type data_type, commentstable.comments column_comment from user_tab_cols colstable inner join user_col_comments commentstable on colstable.column_name = commentstable.column_name where colstable.table_name = commentstable.table_name and colstable.table_name = '" + var0.toUpperCase() + "'";
|
sqlStr = "select colstable.column_name column_name, colstable.data_type data_type, commentstable.comments column_comment from user_tab_cols colstable inner join user_col_comments commentstable on colstable.column_name = commentstable.column_name where colstable.table_name = commentstable.table_name and colstable.table_name = '" + tableName.toUpperCase() + "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("postgresql")) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.POSTGRESQL)) {
|
||||||
sqlStr = MessageFormat.format("select icm.column_name as field,icm.udt_name as type,fieldtxt.descript as comment, icm.numeric_precision_radix as column_precision ,icm.numeric_scale as column_scale ,icm.character_maximum_length as Char_Length,icm.is_nullable as attnotnull from information_schema.columns icm, (SELECT A.attnum,( SELECT description FROM pg_catalog.pg_description WHERE objoid = A.attrelid AND objsubid = A.attnum ) AS descript,A.attname FROM\tpg_catalog.pg_attribute A WHERE A.attrelid = ( SELECT oid FROM pg_class WHERE relname = {0} ) AND A.attnum > 0 AND NOT A.attisdropped ORDER BY\tA.attnum ) fieldtxt where icm.table_name={1} and fieldtxt.attname = icm.column_name", TableConvert.c(var0), TableConvert.c(var0));
|
sqlStr = MessageFormat.format("select icm.column_name as field,icm.udt_name as type,fieldtxt.descript as comment, icm.numeric_precision_radix as column_precision ,icm.numeric_scale as column_scale ,icm.character_maximum_length as Char_Length,icm.is_nullable as attnotnull from information_schema.columns icm, (SELECT A.attnum,( SELECT description FROM pg_catalog.pg_description WHERE objoid = A.attrelid AND objsubid = A.attnum ) AS descript,A.attname FROM\tpg_catalog.pg_attribute A WHERE A.attrelid = ( SELECT oid FROM pg_class WHERE relname = {0} ) AND A.attnum > 0 AND NOT A.attisdropped ORDER BY\tA.attnum ) fieldtxt where icm.table_name={1} and fieldtxt.attname = icm.column_name", TableConvert.c(tableName), TableConvert.c(tableName));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("sqlserver")) {
|
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.SQLSERVER)) {
|
||||||
sqlStr = MessageFormat.format("select distinct cast(a.name as varchar(50)) column_name, cast(b.name as varchar(50)) data_type, cast(e.value as NVARCHAR(200)) comment, cast(ColumnProperty(a.object_id,a.Name,'''Precision''') as int) num_precision, cast(ColumnProperty(a.object_id,a.Name,'''Scale''') as int) num_scale, a.max_length, (case when a.is_nullable=1 then '''y''' else '''n''' end) nullable,column_id from sys.columns a left join sys.types b on a.user_type_id=b.user_type_id left join (select top 1 * from sys.objects where type = '''U''' and name ={0} order by name) c on a.object_id=c.object_id left join sys.extended_properties e on e.major_id=c.object_id and e.minor_id=a.column_id and e.class=1 where c.name={0} order by a.column_id", TableConvert.c(var0));
|
sqlStr = MessageFormat.format("select distinct cast(a.name as varchar(50)) column_name, cast(b.name as varchar(50)) data_type, cast(e.value as NVARCHAR(200)) comment, cast(ColumnProperty(a.object_id,a.Name,'''Precision''') as int) num_precision, cast(ColumnProperty(a.object_id,a.Name,'''Scale''') as int) num_scale, a.max_length, (case when a.is_nullable=1 then '''y''' else '''n''' end) nullable,column_id from sys.columns a left join sys.types b on a.user_type_id=b.user_type_id left join (select top 1 * from sys.objects where type = '''U''' and name ={0} order by name) c on a.object_id=c.object_id left join sys.extended_properties e on e.major_id=c.object_id and e.minor_id=a.column_id and e.class=1 where c.name={0} order by a.column_id", TableConvert.c(tableName));
|
||||||
}
|
}
|
||||||
|
|
||||||
ResultSet resultSet = statement.executeQuery(sqlStr);
|
ResultSet resultSet = statement.executeQuery(sqlStr);
|
||||||
|
|||||||
Reference in New Issue
Block a user