From 161cb6fc1919d5f829f92c863c85c300d491b519 Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 7 Mar 2025 10:56:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0GoldenDB=E8=AF=86=E5=88=AB?= =?UTF-8?q?=EF=BC=88pr#3886@Github=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/hutool/db/dialect/DialectFactory.java | 3 +++ .../java/org/dromara/hutool/db/driver/DriverIdentifier.java | 4 +++- .../main/java/org/dromara/hutool/db/driver/DriverNames.java | 4 ++++ .../java/org/dromara/hutool/db/driver/DriverUtilTest.java | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/dialect/DialectFactory.java b/hutool-db/src/main/java/org/dromara/hutool/db/dialect/DialectFactory.java index f1f6e5870..53324c404 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/dialect/DialectFactory.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/dialect/DialectFactory.java @@ -86,6 +86,9 @@ public class DialectFactory { return new PhoenixDialect(dbConfig); } else if (DriverNames.DRIVER_DM.equalsIgnoreCase(driverName)) { return new DmDialect(dbConfig); + } else if (DriverNames.DRIVER_GOLDENDB.equalsIgnoreCase(driverName)) { + // MySQL兼容 + return new MysqlDialect(dbConfig); } } // 无法识别可支持的数据库类型默认使用ANSI方言,可兼容大部分SQL语句 diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverIdentifier.java b/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverIdentifier.java index 20d76293c..5dc31f7eb 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverIdentifier.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverIdentifier.java @@ -129,7 +129,9 @@ public class DriverIdentifier implements DriverNames{ new StartsWithDriverMatcher(DRIVER_GREENPLUM, "jdbc:pivotal:greenplum:"), // 华为OpenGauss new StartsWithDriverMatcher(DRIVER_GAUSS, "jdbc:zenith:"), - new StartsWithDriverMatcher(DRIVER_OPENGAUSS, "jdbc:opengauss:") + new StartsWithDriverMatcher(DRIVER_OPENGAUSS, "jdbc:opengauss:"), + // 中兴GoldenDB + new StartsWithDriverMatcher(DRIVER_GOLDENDB, "jdbc:goldendb:") ); } diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverNames.java b/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverNames.java index e597d13ad..9d1515502 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverNames.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverNames.java @@ -253,4 +253,8 @@ public interface DriverNames { */ String DRIVER_GREENPLUM = "com.pivotal.jdbc.GreenplumDriver"; + /** + * JDBC 驱动 GoldenDB + */ + String DRIVER_GOLDENDB = "com.goldendb.jdbc.Driver"; } diff --git a/hutool-db/src/test/java/org/dromara/hutool/db/driver/DriverUtilTest.java b/hutool-db/src/test/java/org/dromara/hutool/db/driver/DriverUtilTest.java index e68e932a0..f93a413cf 100644 --- a/hutool-db/src/test/java/org/dromara/hutool/db/driver/DriverUtilTest.java +++ b/hutool-db/src/test/java/org/dromara/hutool/db/driver/DriverUtilTest.java @@ -60,6 +60,7 @@ public class DriverUtilTest { map.put("jdbc:mariadb:", "org.mariadb.jdbc.Driver"); map.put("jdbc:hive2:", "org.apache.hive.jdbc.HiveDriver"); map.put("jdbc:hive:", "org.apache.hadoop.hive.jdbc.HiveDriver"); + map.put("jdbc:goldendb:", "com.goldendb.jdbc.Driver"); map.forEach((k, v) -> Assertions.assertEquals(v, DriverUtil.identifyDriver(k + RandomUtil.randomStringLower(2))));