From 03511298c2b4ea2221fa6d1cc3c412a524d55eda Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 25 Jan 2021 21:02:38 +0800 Subject: [PATCH] add kingbas --- CHANGELOG.md | 3 ++- .../cn/hutool/db/dialect/DialectFactory.java | 25 +++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c938dfa9..a5c55f0cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------------------------------------- -# 5.5.8 (2021-01-22) +# 5.5.8 (2021-01-25) ### 新特性 * 【extra 】 增加自动装配SpringUtil类(pr#1366@Github) @@ -20,6 +20,7 @@ * 【core 】 DateConvert转换失败默认抛出异常(issue#I2M5GN@Gitee) * 【http 】 HttpServerRequest增加getParam方法 * 【http 】 RootAction增加可选name参数,返回指定文件名称 +* 【db 】 支持人大金仓8的驱动识别 ### Bug修复 * 【core 】 修复FileUtil.move以及PathUtil.copy等无法自动创建父目录的问题(issue#I2CKTI@Gitee) diff --git a/hutool-db/src/main/java/cn/hutool/db/dialect/DialectFactory.java b/hutool-db/src/main/java/cn/hutool/db/dialect/DialectFactory.java index 8f405a39b..09f77b534 100644 --- a/hutool-db/src/main/java/cn/hutool/db/dialect/DialectFactory.java +++ b/hutool-db/src/main/java/cn/hutool/db/dialect/DialectFactory.java @@ -18,12 +18,12 @@ import java.util.concurrent.ConcurrentHashMap; /** * 方言工厂类 - * + * * @author loolly * */ public class DialectFactory { - + /** JDBC 驱动 MySQL */ public static final String DRIVER_MYSQL = "com.mysql.jdbc.Driver"; /** JDBC 驱动 MySQL,在6.X版本中变动驱动类名,且使用SPI机制 */ @@ -50,16 +50,18 @@ public class DialectFactory { public static final String DRIVER_HSQLDB = "org.hsqldb.jdbc.JDBCDriver"; /** JDBC 驱动 达梦7 */ public static final String DRIVER_DM7 = "dm.jdbc.driver.DmDriver"; - + /** JDBC 驱动 人大金仓 */ + public static final String DRIVER_KINGBASE8 = "com.kingbase8.Driver"; + private static final Map DIALECT_POOL = new ConcurrentHashMap<>(); private DialectFactory() { } - + /** * 根据驱动名创建方言
* 驱动名是不分区大小写完全匹配的 - * + * * @param driverName JDBC驱动类名 * @return 方言 */ @@ -72,7 +74,7 @@ public class DialectFactory { /** * 根据驱动名创建方言
* 驱动名是不分区大小写完全匹配的 - * + * * @param driverName JDBC驱动类名 * @return 方言 */ @@ -98,7 +100,7 @@ public class DialectFactory { /** * 通过JDBC URL等信息识别JDBC驱动名 - * + * * @param nameContainsProductInfo 包含数据库标识的字符串 * @return 驱动 */ @@ -133,11 +135,14 @@ public class DialectFactory { } else if (nameContainsProductInfo.contains("dm")) { // 达梦7 driver = DRIVER_DM7; + } else if (nameContainsProductInfo.contains("kingbase8")) { + // 人大金仓8 + driver = DRIVER_KINGBASE8; } return driver; } - + /** * 获取共享方言 * @param ds 数据源,每一个数据源对应一个唯一方言 @@ -161,7 +166,7 @@ public class DialectFactory { /** * 创建方言 - * + * * @param ds 数据源 * @return 方言 */ @@ -171,7 +176,7 @@ public class DialectFactory { /** * 创建方言 - * + * * @param conn 数据库连接对象 * @return 方言 */