From 7768ba1d7712da45d4148cb2b7c5ec9d20543e1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 31 Mar 2023 13:45:57 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90fix=20sonar=E3=80=91DbTableProcess?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../online/config/util/DbTableProcess.java | 242 +++++++++--------- 1 file changed, 128 insertions(+), 114 deletions(-) diff --git a/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/config/util/DbTableProcess.java b/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/config/util/DbTableProcess.java index 264023cc..a4356435 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/config/util/DbTableProcess.java +++ b/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/config/util/DbTableProcess.java @@ -3,27 +3,7 @@ package com.jero.generater.modules.online.config.util; import com.alibaba.druid.filter.config.ConfigTools; import com.google.common.collect.Lists; -import freemarker.template.TemplateException; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.sql.Connection; -import java.sql.DatabaseMetaData; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.SQLException; -import java.sql.SQLSyntaxErrorException; -import java.util.*; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; -import org.hibernate.HibernateException; -import org.hibernate.Session; -import org.hibernate.boot.Metadata; -import org.hibernate.boot.MetadataSources; -import org.hibernate.boot.registry.StandardServiceRegistry; -import org.hibernate.boot.registry.StandardServiceRegistryBuilder; -import org.hibernate.tool.hbm2ddl.SchemaExport; -import org.hibernate.tool.schema.TargetType; +import com.jero.common.exception.JeroBootException; import com.jero.common.util.SpringContextUtils; import com.jero.common.util.oConvertUtils; import com.jero.generater.modules.online.cgform.entity.OnlCgformField; @@ -31,6 +11,22 @@ import com.jero.generater.modules.online.config.config.CgformConfigModel; import com.jero.generater.modules.online.config.config.DataBaseConfig; import com.jero.generater.modules.online.config.exception.DBException; import com.jero.generater.modules.online.config.service.DbTableHandleI; +import freemarker.template.TemplateException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.apache.poi.ss.formula.functions.T; +import org.hibernate.HibernateException; +import org.hibernate.boot.Metadata; +import org.hibernate.boot.MetadataSources; +import org.hibernate.boot.registry.StandardServiceRegistry; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.tool.hbm2ddl.SchemaExport; +import org.hibernate.tool.schema.TargetType; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.sql.*; +import java.util.*; @Slf4j public class DbTableProcess { @@ -40,46 +36,25 @@ public class DbTableProcess { private static DbTableHandleI c; public DbTableProcess() throws SQLException, DBException { - c = DbTableUtil.getTableHandle(); + synchronized (DbTableProcess.class){ + if(c == null){ + c = DbTableUtil.getTableHandle(); + } + } } public static void a(CgformConfigModel var0) throws IOException, TemplateException, HibernateException, SQLException, DBException { String var1 = DbTableUtil.getDatabaseType(); - if (ORACLE.equals(var1)) { - ArrayList var2 = Lists.newArrayList(); - - OnlCgformField var4; - for(Iterator var3 = var0.getColumns().iterator(); var3.hasNext(); var2.add(var4)) { - var4 = (OnlCgformField)var3.next(); - if ("int".equals(var4.getDbType())) { - var4.setDbType("double"); - var4.setDbPointLength(0); - } - } - - var0.setColumns(var2); - } + setVar0(var0, var1); String var15 = FreemarkerHelper.a("com/jero/generater/modules/online/config/engine/tableTemplate.ftl", a(var0, var1)); log.info(var15); - HashMap var16 = new HashMap<>(); + HashMap var16 = new HashMap<>(); DataBaseConfig var17 = var0.getDbConfig(); var16.put("hibernate.connection.driver_class", var17.getDriverClassName()); var16.put("hibernate.connection.url", var17.getUrl()); var16.put("hibernate.connection.username", var17.getUsername()); - if (var17.getDruid() != null && oConvertUtils.isNotEmpty(var17.getDruid().getPublicKey())) { - log.info(" dbconfig.getDruid().getPublicKey() = " + var17.getDruid().getPublicKey()); - - try { - String var5 = ConfigTools.decrypt(var17.getDruid().getPublicKey(), var17.getPassword()); - log.info(" 解密密码 decryptPassword = " + var5); - var16.put("hibernate.connection.password", var5); - } catch (Exception var14) { - var14.printStackTrace(); - } - } else { - var16.put("hibernate.connection.password", var17.getPassword()); - } + putVar16(var16, var17); var16.put("hibernate.show_sql", true); var16.put("hibernate.format_sql", true); @@ -96,7 +71,7 @@ public class DbTableProcess { SchemaExport var9 = new SchemaExport(); var9.create(EnumSet.of(TargetType.DATABASE), var8); var7.close(); - List var10 = var9.getExceptions(); + List var10 = var9.getExceptions(); for (Object o : var10) { Exception var12 = (Exception) o; @@ -124,6 +99,39 @@ public class DbTableProcess { } + private static void setVar0(CgformConfigModel var0, String var1) { + if (ORACLE.equals(var1)) { + ArrayList var2 = Lists.newArrayList(); + + OnlCgformField var4; + for(Iterator var3 = var0.getColumns().iterator(); var3.hasNext(); var2.add(var4)) { + var4 = var3.next(); + if ("int".equals(var4.getDbType())) { + var4.setDbType("double"); + var4.setDbPointLength(0); + } + } + + var0.setColumns(var2); + } + } + + private static void putVar16(HashMap var16, DataBaseConfig var17) { + if (var17.getDruid() != null && oConvertUtils.isNotEmpty(var17.getDruid().getPublicKey())) { + log.info(" dbconfig.getDruid().getPublicKey() = " + var17.getDruid().getPublicKey()); + + try { + String var5 = ConfigTools.decrypt(var17.getDruid().getPublicKey(), var17.getPassword()); + log.info(" 解密密码 decryptPassword = " + var5); + var16.put("hibernate.connection.password", var5); + } catch (Exception var14) { + var14.printStackTrace(); + } + } else { + var16.put("hibernate.connection.password", var17.getPassword()); + } + } + public List b(CgformConfigModel var1) throws DBException, SQLException { String var2 = DbTableUtil.getDatabaseType(); String var3 = DbTableUtil.a(var1.getTableName(), var2); @@ -134,79 +142,93 @@ public class DbTableProcess { Map var6 = this.c(null, var3); Map var7 = this.c(var1); Map var8 = this.a(var1.getColumns()); - Iterator var9 = var7.keySet().iterator(); + Iterator var9 = var7.keySet().iterator(); - label72: while(true) { while(true) { String var10; - while(var9.hasNext()) { - var10 = (String)var9.next(); - ColumnMeta var11; - if (!var6.containsKey(var10)) { - var11 = var7.get(var10); - String var17 = var8.get(var10); - if (var8.containsKey(var10) && var6.containsKey(var17)) { - ColumnMeta var13 = var6.get(var17); - String var14 = c.getReNameFieldName(var11); - if (SQL_SERVER.equals(var2)) { - var5.add(var14); - } else { - var5.add(var4 + var14); - } - - String var15 = this.d(var10, var11.getColumnId()); - var5.add(var15); - if (!var13.equals(var11)) { - var5.add(var4 + this.a(var11, var13)); - if ("POSTGRESQL".equals(var2)) { - var5.add(var4 + this.b(var11, var13)); - } - } - - if (!SQL_SERVER.equals(var2) && !var13.b(var11)) { - var5.add(this.c(var11)); - } - } else { - var5.add(var4 + this.b(var11)); - if (!SQL_SERVER.equals(var2) && StringUtils.isNotEmpty(var11.getComment())) { - var5.add(this.c(var11)); - } - } - } else { - var11 = var6.get(var10); - ColumnMeta var12 = var7.get(var10); - if (!var11.a(var12, var2)) { - var5.add(var4 + this.a(var12, var11)); - } - - if (!SQL_SERVER.equals(var2) && !ORACLE.equals(var2) && !var11.b(var12)) { - var5.add(this.c(var12)); - } - } - } + getVar9(var2, var4, var5, var6, var7, var8, var9); var9 = var6.keySet().iterator(); while(var9.hasNext()) { - var10 = (String)var9.next(); + var10 = var9.next(); if (!var7.containsKey(var10.toLowerCase()) && !var8.containsValue(var10.toLowerCase())) { var5.add(var4 + this.b(var10)); } } - break label72; + break; } + break; } } catch (SQLException var16) { - throw new RuntimeException(); + throw new JeroBootException("异常:", var16); } log.info(" db update sql : " + var5.toString()); return var5; } + private void getVar9(String var2, String var4, ArrayList var5, Map var6, Map var7, Map var8, Iterator var9) throws DBException { + String var10; + while(var9.hasNext()) { + var10 = var9.next(); + ColumnMeta var11; + if (!var6.containsKey(var10)) { + getVar11(var2, var4, var5, var6, var7, var8, var10); + } else { + var11 = var6.get(var10); + ColumnMeta var12 = var7.get(var10); + if (!var11.a(var12, var2)) { + var5.add(var4 + this.a(var12, var11)); + } + + if (!SQL_SERVER.equals(var2) && !ORACLE.equals(var2) && !var11.b(var12)) { + var5.add(this.c(var12)); + } + } + } + } + + private void getVar11(String var2, String var4, ArrayList var5, Map var6, Map var7, Map var8, String var10) throws DBException { + ColumnMeta var11; + var11 = var7.get(var10); + String var17 = var8.get(var10); + if (var8.containsKey(var10) && var6.containsKey(var17)) { + ColumnMeta var13 = var6.get(var17); + String var14 = c.getReNameFieldName(var11); + addVar5(var2, var4, var5, var14); + + String var15 = this.d(var10, var11.getColumnId()); + var5.add(var15); + if (!var13.equals(var11)) { + var5.add(var4 + this.a(var11, var13)); + if ("POSTGRESQL".equals(var2)) { + var5.add(var4 + this.b(var11, var13)); + } + } + + if (!SQL_SERVER.equals(var2) && !var13.b(var11)) { + var5.add(this.c(var11)); + } + } else { + var5.add(var4 + this.b(var11)); + if (!SQL_SERVER.equals(var2) && StringUtils.isNotEmpty(var11.getComment())) { + var5.add(this.c(var11)); + } + } + } + + private void addVar5(String var2, String var4, ArrayList var5, String var14) { + if (SQL_SERVER.equals(var2)) { + var5.add(var14); + } else { + var5.add(var4 + var14); + } + } + private static Map a(CgformConfigModel var0, String var1) { - HashMap var2 = new HashMap<>(); + HashMap var2 = new HashMap<>(); for (OnlCgformField var4 : var0.getColumns()) { var4.setDbDefaultVal(c(var4.getDbDefaultVal())); @@ -218,9 +240,9 @@ public class DbTableProcess { } private Map c(String var1, String var2) throws SQLException { - HashMap var3 = new HashMap<>(); + HashMap var3 = new HashMap<>(); Connection var4 = null; - + log.info(var1); try { var4 = DbTableUtil.getConnection(); } catch (Exception var21) { @@ -276,7 +298,7 @@ public class DbTableProcess { } private Map c(CgformConfigModel var1) { - HashMap var2 = new HashMap<>(); + HashMap var2 = new HashMap<>(); List var3 = var1.getColumns(); for (OnlCgformField var6 : var3) { @@ -300,7 +322,7 @@ public class DbTableProcess { } private Map a(List var1) { - HashMap var2 = new HashMap<>(); + HashMap var2 = new HashMap<>(); for (OnlCgformField var4 : var1) { var2.put(var4.getDbFieldName(), var4.getDbFieldNameOld()); @@ -321,10 +343,6 @@ public class DbTableProcess { return c.getSpecialHandle(var1, var2); } - private String a(ColumnMeta var1) { - return c.getReNameFieldName(var1); - } - private String b(ColumnMeta var1) { return c.getAddColumnSql(var1); } @@ -337,10 +355,6 @@ public class DbTableProcess { return "update onl_cgform_field set DB_FIELD_NAME_OLD = '" + var1 + "' where ID ='" + var2 + "'"; } - private int a(String var1, String var2, Session var3) { - return var3.createSQLQuery("update onl_cgform_field set DB_FIELD_NAME_OLD= '" + var1 + "' where ID ='" + var2 + "'").executeUpdate(); - } - private static String c(String var0) { if (StringUtils.isNotEmpty(var0)) { try {