From 91b954bedc30ff42db57c1048f7d0173827fef0e Mon Sep 17 00:00:00 2001 From: dftre <3066417822@qq.com> Date: Tue, 4 Mar 2025 17:51:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E8=A1=A8?= =?UTF-8?q?=E5=88=AB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/GenTableServiceImpl.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java index 6c1c647..5a9f937 100644 --- a/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java +++ b/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java @@ -8,6 +8,8 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.function.Function; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -100,7 +102,29 @@ public class GenTableServiceImpl implements IGenTableService { */ @Override public List selectDbTableListByNames(String[] tableNames) { - return genTableMapper.selectDbTableListByNames(tableNames); + List genTables = genTableMapper.selectDbTableListByNames(tableNames); + genTables.forEach(i -> i.setTableAlias(generateTableAlias(i.getTableName()))); + return genTables; + } + + public static String generateTableAlias(String tableName) { + if (StringUtils.isEmpty(tableName)) { + return "t"; + } + + // 改进的正则表达式,更准确地处理所有三种情况 + Pattern pattern = Pattern.compile("([A-Z][a-z0-9]*)|([a-z0-9]+)(?=[A-Z])|([a-z0-9]+)(?=_)|([a-z0-9]+)$"); + Matcher matcher = pattern.matcher(tableName); + StringBuilder alias = new StringBuilder(); + + while (matcher.find()) { + String word = matcher.group(); + if (!word.isEmpty()) { + alias.append(word.charAt(0)); + } + } + + return alias.toString().toLowerCase(); } /**