This commit is contained in:
Looly 2021-04-04 12:12:53 +08:00
parent 78aaab53bc
commit d60b315a20
3 changed files with 23 additions and 1 deletions

View File

@ -3,7 +3,7 @@
-------------------------------------------------------------------------------------------------------------
# 5.6.3 (2021-04-03)
# 5.6.3 (2021-04-04)
### 新特性
* 【core 】 修改数字转换的实现增加按照指定端序转换pr#1492@Github
@ -13,6 +13,7 @@
### Bug修复
* 【core 】 修复Validator.isUrl()传空返回trueissue#I3ETTY@Gitee
* 【db 】 修复数据库driver根据url的判断识别错误问题issue#I3EWBI@Gitee
-------------------------------------------------------------------------------------------------------------

View File

@ -1,6 +1,7 @@
package cn.hutool.db.dialect;
import cn.hutool.core.util.ClassLoaderUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.db.dialect.impl.AnsiSqlDialect;
import cn.hutool.db.dialect.impl.H2Dialect;
@ -115,6 +116,12 @@ public class DialectFactory {
// 全部转为小写忽略大小写
nameContainsProductInfo = StrUtil.cleanBlank(nameContainsProductInfo.toLowerCase());
// 首先判断是否为标准的JDBC URL截取jdbc:xxxx:中间部分
final String name = ReUtil.getGroup1("jdbc:(.*?):", nameContainsProductInfo);
if(StrUtil.isNotBlank(name)){
nameContainsProductInfo = name;
}
String driver = null;
if (nameContainsProductInfo.contains("mysql")) {
driver = ClassLoaderUtil.isPresent(DRIVER_MYSQL_V6) ? DRIVER_MYSQL_V6 : DRIVER_MYSQL;

View File

@ -0,0 +1,14 @@
package cn.hutool.db.dialect;
import org.junit.Assert;
import org.junit.Test;
public class DriverUtilTest {
@Test
public void identifyDriverTest(){
String url = "jdbc:h2:file:./db/test;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL";
String driver = DriverUtil.identifyDriver(url); // driver 返回 mysql driver
Assert.assertEquals("org.h2.Driver", driver);
}
}