【fix sonar】DbTableProcess文件
This commit is contained in:
+128
-114
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user