【fix sonar】DbTableProcess文件

This commit is contained in:
梁琦涛
2023-03-31 13:45:57 +08:00
parent d9ad159ca5
commit 7768ba1d77
@@ -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<OnlCgformField> 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<String, Object> 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<T> 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<OnlCgformField> var2 = Lists.newArrayList();
OnlCgformField var4;
for(Iterator<OnlCgformField> 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<String, Object> 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<String> 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<String, ColumnMeta> var6 = this.c(null, var3);
Map<String, ColumnMeta> var7 = this.c(var1);
Map<String, String> var8 = this.a(var1.getColumns());
Iterator var9 = var7.keySet().iterator();
Iterator<String> 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<String> var5, Map<String, ColumnMeta> var6, Map<String, ColumnMeta> var7, Map<String, String> var8, Iterator<String> 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<String> var5, Map<String, ColumnMeta> var6, Map<String, ColumnMeta> var7, Map<String, String> 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<String> var5, String var14) {
if (SQL_SERVER.equals(var2)) {
var5.add(var14);
} else {
var5.add(var4 + var14);
}
}
private static Map<String, Object> a(CgformConfigModel var0, String var1) {
HashMap var2 = new HashMap<>();
HashMap<String, Object> var2 = new HashMap<>();
for (OnlCgformField var4 : var0.getColumns()) {
var4.setDbDefaultVal(c(var4.getDbDefaultVal()));
@@ -218,9 +240,9 @@ public class DbTableProcess {
}
private Map<String, ColumnMeta> c(String var1, String var2) throws SQLException {
HashMap var3 = new HashMap<>();
HashMap<String, ColumnMeta> 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<String, ColumnMeta> c(CgformConfigModel var1) {
HashMap var2 = new HashMap<>();
HashMap<String, ColumnMeta> var2 = new HashMap<>();
List<OnlCgformField> var3 = var1.getColumns();
for (OnlCgformField var6 : var3) {
@@ -300,7 +322,7 @@ public class DbTableProcess {
}
private Map<String, String> a(List<OnlCgformField> var1) {
HashMap var2 = new HashMap<>();
HashMap<String, String> 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 {