瀏覽代碼

生成器增加enableLike.

聂秋秋 5 年之前
父節點
當前提交
31a8e590d1

+ 9 - 0
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/StrategyConfig.java

@@ -163,6 +163,15 @@ public class StrategyConfig {
      * 表填充字段
      */
     private List<TableFill> tableFillList = null;
+    /**
+     * 启用like匹配支持
+     * 目前所知微软系需要关闭,其他数据库等待反馈,
+     * sql可能要改动一下才能支持,没数据库环境搞,请手动关闭使用内存过滤的方式。
+     * 数据库语法不能支持使用like过滤表的话,可以考虑关闭此开关.
+     *
+     * @since 3.3.1
+     */
+    private boolean enableLike = true;
     /**
      * 包含表名
      *

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

@@ -460,17 +460,19 @@ public class ConfigBuilder {
                 tablesSql = String.format(tablesSql, schema);
             }
             StringBuilder sql = new StringBuilder(tablesSql);
-            if (config.getLikeTable() != null) {
-                sql.append(" AND ").append(dbQuery.tableName()).append(" LIKE '").append(config.getLikeTable().getValue()).append("'");
-            } else if (config.getNotLikeTable() != null) {
-                sql.append(" AND ").append(dbQuery.tableName()).append(" NOT LIKE '").append(config.getNotLikeTable().getValue()).append("'");
+            if (config.isEnableLike()) {
+                if (config.getLikeTable() != null) {
+                    sql.append(" AND ").append(dbQuery.tableName()).append(" LIKE '").append(config.getLikeTable().getValue()).append("'");
+                } else if (config.getNotLikeTable() != null) {
+                    sql.append(" AND ").append(dbQuery.tableName()).append(" NOT LIKE '").append(config.getNotLikeTable().getValue()).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(")");
+                    .append(Arrays.stream(config.getExclude()).map(tb -> "'" + tb + "'").collect(Collectors.joining(","))).append(")");
             }
             TableInfo tableInfo;
             try (PreparedStatement preparedStatement = connection.prepareStatement(sql.toString());