From a4aa77d9ce53504d538a90e40fdaa66cf138a830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=B8=85?= <1474983351@qq.com> Date: Fri, 4 Oct 2024 09:24:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=99=A8=E6=B7=BB=E5=8A=A0=E8=A1=A8=E5=90=8E=E7=BC=80=E5=A4=84?= =?UTF-8?q?=E7=90=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codegen/config/GlobalConfig.java | 10 ++++++++- .../codegen/config/StrategyConfig.java | 21 +++++++++++++++++++ .../com/mybatisflex/codegen/entity/Table.java | 17 +++++++++++++-- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java index 1a7e4d1f..7c994443 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java @@ -47,6 +47,7 @@ public class GlobalConfig implements Serializable { public GlobalConfig() { this(FileType.JAVA); } + private final JavadocConfig javadocConfig; private final PackageConfig packageConfig; private final StrategyConfig strategyConfig; @@ -84,7 +85,7 @@ public class GlobalConfig implements Serializable { this.strategyConfig = new StrategyConfig(); this.templateConfig = new TemplateConfig(); this.setTemplatePath(); - if(fileType == FileType.KOTLIN) { + if (fileType == FileType.KOTLIN) { JdbcTypeMapping.registerMapping("java.lang.Integer", "Int"); } } @@ -564,6 +565,13 @@ public class GlobalConfig implements Serializable { return getStrategyConfig().getTablePrefix(); } + /** + * @see StrategyConfig#getTableSuffix() + */ + public String getTableSuffix() { + return getStrategyConfig().getTableSuffix(); + } + /** * @see StrategyConfig#setTablePrefix(String...) */ diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/StrategyConfig.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/StrategyConfig.java index 5638bb44..13b2581b 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/StrategyConfig.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/StrategyConfig.java @@ -34,11 +34,17 @@ import java.util.Set; public class StrategyConfig implements Serializable { private static final long serialVersionUID = 504853587703061034L; + /** * 数据库表前缀,多个前缀用英文逗号(,) 隔开。 */ private String tablePrefix; + /** + * 数据库表后缀,多个后缀用英文逗号(,) 隔开。 + */ + private String tableSuffix; + /** * 逻辑删除的默认字段名称。 */ @@ -279,6 +285,21 @@ public class StrategyConfig implements Serializable { return this; } + /** + * 获取表后缀。 + */ + public String getTableSuffix() { + return tableSuffix; + } + + /** + * 设置表后缀。 + */ + public StrategyConfig setTableSuffix(String... tableSuffix) { + this.tableSuffix = StringUtil.join(",", tableSuffix); + return this; + } + /** * 获取逻辑删除列。 */ diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java index 5a49b9b1..0b21419c 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java @@ -420,13 +420,26 @@ public class Table { */ public String getEntityJavaFileName() { String entityJavaFileName = name; + // 处理表名前缀 String tablePrefix = globalConfig.getStrategyConfig().getTablePrefix(); if (tablePrefix != null) { String[] tablePrefixes = tablePrefix.split(","); for (String prefix : tablePrefixes) { String trimPrefix = prefix.trim(); - if (trimPrefix.length() > 0 && name.startsWith(trimPrefix)) { - entityJavaFileName = name.substring(trimPrefix.length()); + if (!trimPrefix.isEmpty() && name.startsWith(trimPrefix)) { + entityJavaFileName = entityJavaFileName.substring(trimPrefix.length()); + break; + } + } + } + // 处理表名后缀 + String tableSuffix = globalConfig.getStrategyConfig().getTableSuffix(); + if (tableSuffix != null) { + String[] tableSuffixes = tableSuffix.split(","); + for (String suffix : tableSuffixes) { + String trimSuffix = suffix.trim(); + if (!trimSuffix.isEmpty() && name.endsWith(trimSuffix)) { + entityJavaFileName = entityJavaFileName.substring(0, entityJavaFileName.length() - trimSuffix.length()); break; } }