Selaa lähdekoodia

优化一波.

nieqiuqiu 5 vuotta sitten
vanhempi
commit
ac63784b4c

+ 16 - 31
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/ConfigBuilder.java

@@ -424,22 +424,7 @@ public class ConfigBuilder {
         Set<String> notExistTables = new HashSet<>();
         try {
             String tablesSql = dbQuery.tablesSql();
-            if(DbType.MYSQL == dbQuery.dbType()){
-                StringBuilder sql = new StringBuilder(tablesSql).append(" where 1 = 1 ");
-                if (StringUtils.isNotBlank(config.getLikeTable())) {
-                    sql.append(" and ").append(dbQuery.tableName()).append(" like '").append(config.getLikeTable()).append("'");
-                } else if (StringUtils.isNotBlank(config.getNotLikeTable())) {
-                    sql.append(" and ").append(dbQuery.tableName()).append(" not like '").append(config.getLikeTable()).append("'");
-                }
-                if (isInclude) {
-                    sql.append(" and ").append(dbQuery.tableName()).append(" in (")
-                        .append(Arrays.stream(config.getInclude()).map(tb -> "'" + tb + "'").collect(Collectors.joining(","))).append(")");
-                } else if (isExclude) {
-                    sql.append(" and ").append(dbQuery.tableName()).append(" not in (")
-                        .append(Arrays.stream(config.getInclude()).map(tb -> "'" + tb + "'").collect(Collectors.joining(","))).append(")");
-                }
-                tablesSql = sql.toString();
-            } else if (DbType.POSTGRE_SQL == dbQuery.dbType()) {
+            if (DbType.POSTGRE_SQL == dbQuery.dbType()) {
                 String schema = dataSourceConfig.getSchemaName();
                 if (schema == null) {
                     //pg 默认 schema=public
@@ -447,7 +432,7 @@ public class ConfigBuilder {
                     dataSourceConfig.setSchemaName(schema);
                 }
                 tablesSql = String.format(tablesSql, schema);
-            }else if (DbType.KINGBASE_ES == dbQuery.dbType()) {
+            } else if (DbType.KINGBASE_ES == dbQuery.dbType()) {
                 String schema = dataSourceConfig.getSchemaName();
                 if (schema == null) {
                     //kingbase 默认 schema=PUBLIC
@@ -473,22 +458,22 @@ public class ConfigBuilder {
                     dataSourceConfig.setSchemaName(schema);
                 }
                 tablesSql = String.format(tablesSql, schema);
-                if (isInclude) {
-                    StringBuilder sb = new StringBuilder(tablesSql);
-                    sb.append(" AND ").append(dbQuery.tableName()).append(" IN (");
-                    Arrays.stream(config.getInclude()).forEach(tbname -> sb.append(StringPool.SINGLE_QUOTE).append(tbname.toUpperCase()).append("',"));
-                    sb.replace(sb.length() - 1, sb.length(), StringPool.RIGHT_BRACKET);
-                    tablesSql = sb.toString();
-                } else if (isExclude) {
-                    StringBuilder sb = new StringBuilder(tablesSql);
-                    sb.append(" AND ").append(dbQuery.tableName()).append(" NOT IN (");
-                    Arrays.stream(config.getExclude()).forEach(tbname -> sb.append(StringPool.SINGLE_QUOTE).append(tbname.toUpperCase()).append("',"));
-                    sb.replace(sb.length() - 1, sb.length(), StringPool.RIGHT_BRACKET);
-                    tablesSql = sb.toString();
-                }
+            }
+            StringBuilder sql = new StringBuilder(tablesSql);
+            if (StringUtils.isNotBlank(config.getLikeTable())) {
+                sql.append(" AND ").append(dbQuery.tableName()).append(" LIKE '").append(config.getLikeTable()).append("'");
+            } else if (StringUtils.isNotBlank(config.getNotLikeTable())) {
+                sql.append(" AND ").append(dbQuery.tableName()).append(" NOT LIKE '").append(config.getLikeTable()).append("'");
+            }
+            if (isInclude) {
+                sql.append(" AND ").append(dbQuery.tableName()).append(" IN (")
+                    .append(Arrays.stream(config.getInclude()).map(tb -> "'" + tb + "'").collect(Collectors.joining(","))).append(")");
+            } else if (isExclude) {
+                sql.append(" AND ").append(dbQuery.tableName()).append(" NOT IN (")
+                    .append(Arrays.stream(config.getInclude()).map(tb -> "'" + tb + "'").collect(Collectors.joining(","))).append(")");
             }
             TableInfo tableInfo;
-            try (PreparedStatement preparedStatement = connection.prepareStatement(tablesSql);
+            try (PreparedStatement preparedStatement = connection.prepareStatement(sql.toString());
                  ResultSet results = preparedStatement.executeQuery()) {
                 while (results.next()) {
                     String tableName = results.getString(dbQuery.tableName());

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/querys/H2Query.java

@@ -39,7 +39,7 @@ public class H2Query extends AbstractDbQuery {
 
     @Override
     public String tablesSql() {
-        return "SELECT * FROM INFORMATION_SCHEMA.TABLES";
+        return "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE 1=1 ";
     }
 
 

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/querys/MariadbQuery.java

@@ -37,7 +37,7 @@ public class MariadbQuery extends AbstractDbQuery {
 
     @Override
     public String tablesSql() {
-        return "show table status";
+        return "show table status WHERE 1=1 ";
     }
 
 

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/querys/MySqlQuery.java

@@ -37,7 +37,7 @@ public class MySqlQuery extends AbstractDbQuery {
 
     @Override
     public String tablesSql() {
-        return "show table status";
+        return "show table status WHERE 1=1 ";
     }