From 664a258aad428f3cd6ae940269f9157859ea3fea Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Fri, 22 Sep 2023 14:14:38 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.0=E3=80=91=E3=80=90db=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=95=B0=E6=8D=AE=E5=BA=93=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=A7=8D=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roses/kernel/rule/enums/DbTypeEnum.java | 14 ++++++- .../kernel/db/api/sqladapter/AbstractSql.java | 42 +++++++++++++++++-- 2 files changed, 51 insertions(+), 5 deletions(-) diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/DbTypeEnum.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/DbTypeEnum.java index c5d79a663..9d56e6532 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/DbTypeEnum.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/DbTypeEnum.java @@ -28,15 +28,25 @@ public enum DbTypeEnum { */ ORACLE("jdbc:oracle", "oracle", "select 1 from dual"), + /** + * mssql + */ + MS_SQL("jdbc:jtds:sqlserver", "mssql", "select 1"), + /** * 达梦(使用oracle的mapping.xml) */ DM("jdbc:dm", "oracle", "select 1 from dual"), /** - * mssql + * 海量数据库 */ - MS_SQL("jdbc:jtds:sqlserver", "mssql", "select 1"); + VAST_DATA("jdbc:vastbase", "pgsql", "select version()"), + + /** + * 人大金仓 + */ + KING_BASE("jdbc:kingbase8", "pgsql", "select version()"); /** * spring.datasource.url中包含的关键字 diff --git a/kernel-d-db/db-api/src/main/java/cn/stylefeng/roses/kernel/db/api/sqladapter/AbstractSql.java b/kernel-d-db/db-api/src/main/java/cn/stylefeng/roses/kernel/db/api/sqladapter/AbstractSql.java index bfa851219..a7bf34996 100644 --- a/kernel-d-db/db-api/src/main/java/cn/stylefeng/roses/kernel/db/api/sqladapter/AbstractSql.java +++ b/kernel-d-db/db-api/src/main/java/cn/stylefeng/roses/kernel/db/api/sqladapter/AbstractSql.java @@ -44,17 +44,26 @@ public abstract class AbstractSql { * @since 2020/10/31 23:44 */ public String getSql(String jdbcUrl) { + if (jdbcUrl.contains(DbTypeEnum.MYSQL.getUrlWords())) { + return mysql(); + } + if (jdbcUrl.contains(DbTypeEnum.PG_SQL.getUrlWords())) { + return pgSql(); + } if (jdbcUrl.contains(DbTypeEnum.ORACLE.getUrlWords())) { return oracle(); } if (jdbcUrl.contains(DbTypeEnum.DM.getUrlWords())) { - return oracle(); + return dm(); } if (jdbcUrl.contains(DbTypeEnum.MS_SQL.getUrlWords())) { return sqlServer(); } - if (jdbcUrl.contains(DbTypeEnum.PG_SQL.getUrlWords())) { - return pgSql(); + if (jdbcUrl.contains(DbTypeEnum.VAST_DATA.getUrlWords())) { + return vastbase(); + } + if (jdbcUrl.contains(DbTypeEnum.KING_BASE.getUrlWords())) { + return kingbase(); } return mysql(); } @@ -95,4 +104,31 @@ public abstract class AbstractSql { */ protected abstract String oracle(); + /** + * 达梦的sql + * + * @return 具体的sql + * @author fengshuonan + * @since 2023/9/22 14:12 + */ + protected abstract String dm(); + + /** + * 人大金仓的sql + * + * @return 具体的sql + * @author fengshuonan + * @since 2023/9/22 14:12 + */ + protected abstract String kingbase(); + + /** + * 海量数据库的sql + * + * @return 具体的sql + * @author fengshuonan + * @since 2023/9/22 14:12 + */ + protected abstract String vastbase(); + }