Browse Source

add kingbas

Looly 5 years ago
parent
commit
03511298c2
2 changed files with 17 additions and 11 deletions
  1. 2 1
      CHANGELOG.md
  2. 15 10
      hutool-db/src/main/java/cn/hutool/db/dialect/DialectFactory.java

+ 2 - 1
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)

+ 15 - 10
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<DataSource, Dialect> DIALECT_POOL = new ConcurrentHashMap<>();
 
 	private DialectFactory() {
 	}
-	
+
 	/**
 	 * 根据驱动名创建方言<br>
 	 * 驱动名是不分区大小写完全匹配的
-	 * 
+	 *
 	 * @param driverName JDBC驱动类名
 	 * @return 方言
 	 */
@@ -72,7 +74,7 @@ public class DialectFactory {
 	/**
 	 * 根据驱动名创建方言<br>
 	 * 驱动名是不分区大小写完全匹配的
-	 * 
+	 *
 	 * @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 方言
 	 */