From 807eb937eb960f17b3d2b78096f338b34a0cdd95 Mon Sep 17 00:00:00 2001 From: mzc5649 <13027087095@163.com> Date: Thu, 1 Apr 2021 15:17: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 | 84 +++++++++---------- .../generate/impl/CodeGenerateOne.java | 4 +- .../generate/impl/CodeGenerateOneToMany.java | 8 +- .../impl/OnlCgformHeadServiceImpl.java | 2 +- 4 files changed, 49 insertions(+), 49 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 4a1ed40b..7f1da436 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 @@ -30,7 +30,7 @@ public class DbReadTableUtil { public static void main(String[] args) throws SQLException { try { - List list = listColumnVo("demo"); + List list = listOneColumnVo("demo"); Iterator iterator = list.iterator(); while(iterator.hasNext()) { @@ -103,7 +103,7 @@ public class DbReadTableUtil { return list; } - public static List listColumnVo(String tableName) throws Exception { + public static List listOneColumnVo(String tableName) throws Exception { String sqlStr = null; ArrayList list = new ArrayList(); @@ -222,83 +222,83 @@ public class DbReadTableUtil { return result; } - public static List b(String var0) throws Exception { - ResultSet var1 = null; - String var2 = null; - ArrayList var3 = new ArrayList(); + public static List listOneToManyColumnVo(String tableName) throws Exception { + ResultSet resultSet = null; + 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)); } - var1 = statement.executeQuery(var2); - var1.last(); - var5 = var1.getRow(); - if (var5 <= 0) { + resultSet = statement.executeQuery(sqlStr); + resultSet.last(); + row = resultSet.getRow(); + if (row <= 0) { throw new Exception("该表不存在或者表中没有字段"); } ColumnVo var7 = new ColumnVo(); if (com.jero.codegenerate.properties.CodeConfigProperties.k) { - var7.setFieldName(e(var1.getString(1).toLowerCase())); + var7.setFieldName(e(resultSet.getString(1).toLowerCase())); } else { - var7.setFieldName(var1.getString(1).toLowerCase()); + var7.setFieldName(resultSet.getString(1).toLowerCase()); } - var7.setFieldDbName(var1.getString(1).toUpperCase()); - var7.setPrecision(TableConvert.b(var1.getString(4))); - var7.setScale(TableConvert.b(var1.getString(5))); - var7.setCharmaxLength(TableConvert.b(var1.getString(6))); - var7.setNullable(TableConvert.getNullable(var1.getString(7))); - var7.setFieldType(a(var1.getString(2).toLowerCase(), var7.getPrecision(), var7.getScale())); - var7.setFieldDbType(e(var1.getString(2).toLowerCase())); + var7.setFieldDbName(resultSet.getString(1).toUpperCase()); + var7.setPrecision(TableConvert.b(resultSet.getString(4))); + var7.setScale(TableConvert.b(resultSet.getString(5))); + var7.setCharmaxLength(TableConvert.b(resultSet.getString(6))); + var7.setNullable(TableConvert.getNullable(resultSet.getString(7))); + var7.setFieldType(a(resultSet.getString(2).toLowerCase(), var7.getPrecision(), var7.getScale())); + var7.setFieldDbType(e(resultSet.getString(2).toLowerCase())); setupColumnVo(var7); - var7.setFiledComment(StringUtils.isBlank(var1.getString(3)) ? var7.getFieldName() : var1.getString(3)); + var7.setFiledComment(StringUtils.isBlank(resultSet.getString(3)) ? var7.getFieldName() : resultSet.getString(3)); log.debug("columnt.getFieldName() -------------" + var7.getFieldName()); - var3.add(var7); + list.add(var7); while(true) { - if (!var1.previous()) { + if (!resultSet.previous()) { log.debug("读取表成功"); break; } ColumnVo var8 = new ColumnVo(); if (com.jero.codegenerate.properties.CodeConfigProperties.k) { - var8.setFieldName(e(var1.getString(1).toLowerCase())); + var8.setFieldName(e(resultSet.getString(1).toLowerCase())); } else { - var8.setFieldName(var1.getString(1).toLowerCase()); + var8.setFieldName(resultSet.getString(1).toLowerCase()); } - var8.setFieldDbName(var1.getString(1).toUpperCase()); - var8.setPrecision(TableConvert.b(var1.getString(4))); - var8.setScale(TableConvert.b(var1.getString(5))); - var8.setCharmaxLength(TableConvert.b(var1.getString(6))); - var8.setNullable(TableConvert.getNullable(var1.getString(7))); - var8.setFieldType(a(var1.getString(2).toLowerCase(), var8.getPrecision(), var8.getScale())); - var8.setFieldDbType(e(var1.getString(2).toLowerCase())); + var8.setFieldDbName(resultSet.getString(1).toUpperCase()); + var8.setPrecision(TableConvert.b(resultSet.getString(4))); + var8.setScale(TableConvert.b(resultSet.getString(5))); + var8.setCharmaxLength(TableConvert.b(resultSet.getString(6))); + var8.setNullable(TableConvert.getNullable(resultSet.getString(7))); + var8.setFieldType(a(resultSet.getString(2).toLowerCase(), var8.getPrecision(), var8.getScale())); + var8.setFieldDbType(e(resultSet.getString(2).toLowerCase())); setupColumnVo(var8); - var8.setFiledComment(StringUtils.isBlank(var1.getString(3)) ? var8.getFieldName() : var1.getString(3)); - var3.add(var8); + var8.setFiledComment(StringUtils.isBlank(resultSet.getString(3)) ? var8.getFieldName() : resultSet.getString(3)); + list.add(var8); } } catch (ClassNotFoundException var17) { throw var17; @@ -325,8 +325,8 @@ public class DbReadTableUtil { ArrayList var20 = 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); var20.add(var6); } diff --git a/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/generate/impl/CodeGenerateOne.java b/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/generate/impl/CodeGenerateOne.java index 6845b58b..7f6ff0c7 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/generate/impl/CodeGenerateOne.java +++ b/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/generate/impl/CodeGenerateOne.java @@ -54,12 +54,12 @@ public class CodeGenerateOne extends BaseCodeGenerate implements IGenerate { try { if (this.e == null || this.e.size() == 0) { - this.e = DbReadTableUtil.listColumnVo(this.b.getTableName()); + this.e = DbReadTableUtil.listOneColumnVo(this.b.getTableName()); } var1.put("columns", this.e); if (this.f == null || this.f.size() == 0) { - this.f = DbReadTableUtil.b(this.b.getTableName()); + this.f = DbReadTableUtil.listOneToManyColumnVo(this.b.getTableName()); } var1.put("originalColumns", this.f); diff --git a/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/generate/impl/CodeGenerateOneToMany.java b/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/generate/impl/CodeGenerateOneToMany.java index d7cc03e3..a74eb295 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/generate/impl/CodeGenerateOneToMany.java +++ b/jero-boot/jero-boot-base/jero-boot-base-generater-core/src/main/java/com/jero/codegenerate/generate/impl/CodeGenerateOneToMany.java @@ -64,11 +64,11 @@ public class CodeGenerateOneToMany extends BaseCodeGenerate implements IGenerate try { if (this.h == null || this.h.size() == 0) { - this.h = DbReadTableUtil.listColumnVo(this.mainTableVo.getTableName()); + this.h = DbReadTableUtil.listOneColumnVo(this.mainTableVo.getTableName()); } if (this.i == null || this.i.size() == 0) { - this.i = DbReadTableUtil.b(this.mainTableVo.getTableName()); + this.i = DbReadTableUtil.listOneToManyColumnVo(this.mainTableVo.getTableName()); } var1.put("columns", this.h); @@ -88,12 +88,12 @@ public class CodeGenerateOneToMany extends BaseCodeGenerate implements IGenerate SubTableVo var12 = (SubTableVo)var2.next(); List var4; if (var12.getColums() == null || var12.getColums().size() == 0) { - var4 = DbReadTableUtil.listColumnVo(var12.getTableName()); + var4 = DbReadTableUtil.listOneColumnVo(var12.getTableName()); var12.setColums(var4); } if (var12.getOriginalColumns() == null || var12.getOriginalColumns().size() == 0) { - var4 = DbReadTableUtil.b(var12.getTableName()); + var4 = DbReadTableUtil.listOneToManyColumnVo(var12.getTableName()); var12.setOriginalColumns(var4); } diff --git a/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/cgform/service/impl/OnlCgformHeadServiceImpl.java b/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/cgform/service/impl/OnlCgformHeadServiceImpl.java index ae22385d..6e7f8d0c 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/cgform/service/impl/OnlCgformHeadServiceImpl.java +++ b/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/cgform/service/impl/OnlCgformHeadServiceImpl.java @@ -503,7 +503,7 @@ public class OnlCgformHeadServiceImpl extends ServiceImpl