From 6bd577efb4c5445a22f01c8c5ba0458efa095cb7 Mon Sep 17 00:00:00 2001 From: mzc5649 <13027087095@163.com> Date: Thu, 1 Apr 2021 14:37:39 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90fix=E3=80=91=E5=AF=B9=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=92=8C=E5=B1=80=E9=83=A8=E5=8F=98=E9=87=8F=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../database/DbReadTableUtil.java | 96 +++++++++---------- .../properties/CodeConfigProperties.java | 6 +- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/database/DbReadTableUtil.java b/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/database/DbReadTableUtil.java index f1fe73e3..3026cd5b 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/database/DbReadTableUtil.java +++ b/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/database/DbReadTableUtil.java @@ -103,88 +103,88 @@ public class DbReadTableUtil { return list; } - public static List a(String var0) throws Exception { - String var2 = null; - ArrayList var3 = new ArrayList(); + public static List a(String tableName) throws Exception { + String sqlStr = null; + ArrayList list = new ArrayList(); - int var5; + int row; try { 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); statement = connection.createStatement(1005, 1007); - String var4 = connection.getCatalog(); - log.info(" connect databaseName : " + var4); + String catalog = connection.getCatalog(); + log.info(" connect databaseName : " + catalog); if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("mysql")) { - var2 = 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(var0), TableConvert.c(var4)); + 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)); } if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("oracle")) { - var2 = 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(var0.toUpperCase())); + 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())); } if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals("postgresql")) { - var2 = 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")) { - var2 = 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)); } - log.debug("--------------sql-------------" + var2); - ResultSet var1 = statement.executeQuery(var2); - var1.last(); - var5 = var1.getRow(); - if (var5 <= 0) { + log.debug("--------------sql-------------" + sqlStr); + ResultSet resultSet = statement.executeQuery(sqlStr); + resultSet.last(); + row = resultSet.getRow(); + if (row <= 0) { throw new Exception("该表不存在或者表中没有字段"); } - ColumnVo var7 = new ColumnVo(); + ColumnVo columnVo = new ColumnVo(); if (com.jero.codegenerate.properties.CodeConfigProperties.k) { - var7.setFieldName(e(var1.getString(1).toLowerCase())); + columnVo.setFieldName(e(resultSet.getString(1).toLowerCase())); } else { - var7.setFieldName(var1.getString(1).toLowerCase()); + columnVo.setFieldName(resultSet.getString(1).toLowerCase()); } - var7.setFieldDbName(var1.getString(1).toUpperCase()); - var7.setFieldType(e(var1.getString(2).toLowerCase())); - var7.setFieldDbType(e(var1.getString(2).toLowerCase())); - var7.setPrecision(var1.getString(4)); - var7.setScale(var1.getString(5)); - var7.setCharmaxLength(var1.getString(6)); - var7.setNullable(TableConvert.a(var1.getString(7))); - a(var7); - var7.setFiledComment(StringUtils.isBlank(var1.getString(3)) ? var7.getFieldName() : var1.getString(3)); - log.debug("columnt.getFieldName() -------------" + var7.getFieldName()); - String[] var8 = new String[0]; - if (com.jero.codegenerate.properties.CodeConfigProperties.o != null) { - var8 = com.jero.codegenerate.properties.CodeConfigProperties.o.toLowerCase().split(","); + columnVo.setFieldDbName(resultSet.getString(1).toUpperCase()); + columnVo.setFieldType(e(resultSet.getString(2).toLowerCase())); + columnVo.setFieldDbType(e(resultSet.getString(2).toLowerCase())); + columnVo.setPrecision(resultSet.getString(4)); + columnVo.setScale(resultSet.getString(5)); + columnVo.setCharmaxLength(resultSet.getString(6)); + columnVo.setNullable(TableConvert.a(resultSet.getString(7))); + a(columnVo); + columnVo.setFiledComment(StringUtils.isBlank(resultSet.getString(3)) ? columnVo.getFieldName() : resultSet.getString(3)); + log.debug("columnt.getFieldName() -------------" + columnVo.getFieldName()); + String[] pageFilterFieldsStrings = new String[0]; + if (com.jero.codegenerate.properties.CodeConfigProperties.pageFilterFields != null) { + pageFilterFieldsStrings = com.jero.codegenerate.properties.CodeConfigProperties.pageFilterFields.toLowerCase().split(","); } - if (!com.jero.codegenerate.properties.CodeConfigProperties.l.equals(var7.getFieldName()) && !CodeStringUtils.a(var7.getFieldDbName().toLowerCase(), var8)) { - var3.add(var7); + if (!com.jero.codegenerate.properties.CodeConfigProperties.l.equals(columnVo.getFieldName()) && !CodeStringUtils.a(columnVo.getFieldDbName().toLowerCase(), pageFilterFieldsStrings)) { + list.add(columnVo); } - while(var1.previous()) { + while(resultSet.previous()) { ColumnVo var9 = new ColumnVo(); if (com.jero.codegenerate.properties.CodeConfigProperties.k) { - var9.setFieldName(e(var1.getString(1).toLowerCase())); + var9.setFieldName(e(resultSet.getString(1).toLowerCase())); } else { - var9.setFieldName(var1.getString(1).toLowerCase()); + var9.setFieldName(resultSet.getString(1).toLowerCase()); } - var9.setFieldDbName(var1.getString(1).toUpperCase()); + var9.setFieldDbName(resultSet.getString(1).toUpperCase()); log.debug("columnt.getFieldName() -------------" + var9.getFieldName()); - if (!com.jero.codegenerate.properties.CodeConfigProperties.l.equals(var9.getFieldName()) && !CodeStringUtils.a(var9.getFieldDbName().toLowerCase(), var8)) { - var9.setFieldType(e(var1.getString(2).toLowerCase())); - var9.setFieldDbType(e(var1.getString(2).toLowerCase())); + if (!com.jero.codegenerate.properties.CodeConfigProperties.l.equals(var9.getFieldName()) && !CodeStringUtils.a(var9.getFieldDbName().toLowerCase(), pageFilterFieldsStrings)) { + var9.setFieldType(e(resultSet.getString(2).toLowerCase())); + var9.setFieldDbType(e(resultSet.getString(2).toLowerCase())); log.debug("-----po.setFieldType------------" + var9.getFieldType()); - var9.setPrecision(var1.getString(4)); - var9.setScale(var1.getString(5)); - var9.setCharmaxLength(var1.getString(6)); - var9.setNullable(TableConvert.a(var1.getString(7))); + var9.setPrecision(resultSet.getString(4)); + var9.setScale(resultSet.getString(5)); + var9.setCharmaxLength(resultSet.getString(6)); + var9.setNullable(TableConvert.a(resultSet.getString(7))); a(var9); - var9.setFiledComment(StringUtils.isBlank(var1.getString(3)) ? var9.getFieldName() : var1.getString(3)); - var3.add(var9); + var9.setFiledComment(StringUtils.isBlank(resultSet.getString(3)) ? var9.getFieldName() : resultSet.getString(3)); + list.add(var9); } } @@ -214,8 +214,8 @@ public class DbReadTableUtil { ArrayList var21 = new ArrayList(); - for(var5 = var3.size() - 1; var5 >= 0; --var5) { - ColumnVo var6 = (ColumnVo)var3.get(var5); + for(row = list.size() - 1; row >= 0; --row) { + ColumnVo var6 = (ColumnVo)list.get(row); var21.add(var6); } diff --git a/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/properties/CodeConfigProperties.java b/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/properties/CodeConfigProperties.java index d2618ce1..a1921e8d 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/properties/CodeConfigProperties.java +++ b/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/properties/CodeConfigProperties.java @@ -30,7 +30,7 @@ public class CodeConfigProperties { public static String l; public static String m; public static String n; - public static String o; + public static String pageFilterFields; public static String p; private static ResourceBundle getDatasourcePropties(String var0) { @@ -105,7 +105,7 @@ public class CodeConfigProperties { return u.getString("db_table_id"); } - public static final String j() { + public static final String getPageFilterFields() { return u.getString("page_filter_fields"); } @@ -168,7 +168,7 @@ public class CodeConfigProperties { f = m(); l = i(); k = f(); - o = j(); + pageFilterFields = getPageFilterFields(); n = k(); if (databaseUrl.indexOf("mysql") < 0 && databaseUrl.indexOf("MYSQL") < 0) { if (databaseUrl.indexOf("oracle") < 0 && databaseUrl.indexOf("ORACLE") < 0) {