优化oracle语法

This commit is contained in:
Moshow郑锴 2025-12-07 21:52:50 +08:00
parent 19982259c4
commit 685b952c8f
2 changed files with 14 additions and 2 deletions

View File

@ -351,7 +351,10 @@ public class SqlParserServiceImpl implements SqlParserService {
} else { } else {
fieldName = columnName; fieldName = columnName;
} }
columnLine = columnLine.substring(columnLine.indexOf("`") + 1).trim(); // 修复Oracle字段名不带引号的情况
if (columnLine.contains("`")) {
columnLine = columnLine.substring(columnLine.indexOf("`") + 1).trim();
}
//2025-03-16 修复由于类型大写导致无法转换的问题 //2025-03-16 修复由于类型大写导致无法转换的问题
String mysqlType = columnLine.split("\\s+")[1].toLowerCase(); String mysqlType = columnLine.split("\\s+")[1].toLowerCase();
if(mysqlType.contains("(")){ if(mysqlType.contains("(")){
@ -400,6 +403,9 @@ public class SqlParserServiceImpl implements SqlParserService {
commentTmp = commentTmp.substring(0, commentTmp.lastIndexOf(")") + 1); commentTmp = commentTmp.substring(0, commentTmp.lastIndexOf(")") + 1);
} }
fieldComment = commentTmp; fieldComment = commentTmp;
} else if (columnLine.contains("--")) {
// 支持Oracle风格的注释--
fieldComment = columnLine.substring(columnLine.indexOf("--") + 2).trim();
} else { } else {
//修复comment不存在导致报错的问题 //修复comment不存在导致报错的问题
fieldComment = columnName; fieldComment = columnName;

View File

@ -27,6 +27,7 @@ public final class mysqlJavaTypeUtil {
//字符串 //字符串
mysqlJavaTypeMap.put("char","String"); mysqlJavaTypeMap.put("char","String");
mysqlJavaTypeMap.put("varchar","String"); mysqlJavaTypeMap.put("varchar","String");
mysqlJavaTypeMap.put("varchar2","String"); // Oracle类型
mysqlJavaTypeMap.put("tinytext","String"); mysqlJavaTypeMap.put("tinytext","String");
mysqlJavaTypeMap.put("text","String"); mysqlJavaTypeMap.put("text","String");
mysqlJavaTypeMap.put("mediumtext","String"); mysqlJavaTypeMap.put("mediumtext","String");
@ -35,6 +36,8 @@ public final class mysqlJavaTypeUtil {
mysqlJavaTypeMap.put("date","Date"); mysqlJavaTypeMap.put("date","Date");
mysqlJavaTypeMap.put("datetime","Date"); mysqlJavaTypeMap.put("datetime","Date");
mysqlJavaTypeMap.put("timestamp","Date"); mysqlJavaTypeMap.put("timestamp","Date");
// 数字类型 - Oracle增强
mysqlJavaTypeMap.put("number","BigDecimal"); // Oracle的NUMBER类型默认映射为BigDecimal支持精度
mysqlSwaggerTypeMap.put("bigint","integer"); mysqlSwaggerTypeMap.put("bigint","integer");
@ -46,7 +49,10 @@ public final class mysqlJavaTypeUtil {
mysqlSwaggerTypeMap.put("boolean","boolean"); mysqlSwaggerTypeMap.put("boolean","boolean");
mysqlSwaggerTypeMap.put("float","number"); mysqlSwaggerTypeMap.put("float","number");
mysqlSwaggerTypeMap.put("double","number"); mysqlSwaggerTypeMap.put("double","number");
mysqlSwaggerTypeMap.put("decimal","Double"); mysqlSwaggerTypeMap.put("decimal","number");
// Oracle类型
mysqlSwaggerTypeMap.put("varchar2","string");
mysqlSwaggerTypeMap.put("number","number");
} }
public static HashMap<String, String> getMysqlJavaTypeMap() { public static HashMap<String, String> getMysqlJavaTypeMap() {