提交 586d70c9 编写于 作者: G gaohongtao 提交者: gaohongtao

fix #150 adjust jdbc driver's product name.

上级 695cf761
......@@ -18,6 +18,11 @@
package com.dangdang.ddframe.rdb.sharding.constants;
import com.dangdang.ddframe.rdb.sharding.exception.DatabaseTypeUnsupportedException;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterators;
import java.util.Arrays;
/**
* 支持的数据库类型.
......@@ -26,7 +31,13 @@ import com.dangdang.ddframe.rdb.sharding.exception.DatabaseTypeUnsupportedExcept
*/
public enum DatabaseType {
H2, MySQL, Oracle, SQLServer, DB2, PostgreSQL;
H2("H2"), MySQL("MySQL"), Oracle("Oracle"), SQLServer("Microsoft SQL Server"), DB2("DB2"), PostgreSQL("PostgreSQL");
private final String productName;
DatabaseType(final String productName) {
this.productName = productName;
}
/**
* 获取数据库类型枚举.
......@@ -35,10 +46,15 @@ public enum DatabaseType {
* @return 数据库类型枚举
*/
public static DatabaseType valueFrom(final String databaseProductName) {
try {
return DatabaseType.valueOf(databaseProductName);
} catch (final IllegalArgumentException ex) {
throw new DatabaseTypeUnsupportedException(databaseProductName);
Optional<DatabaseType> databaseTypeOptional = Iterators.tryFind(Arrays.asList(DatabaseType.values()).iterator(), new Predicate<DatabaseType>() {
@Override
public boolean apply(final DatabaseType input) {
return input.productName.equals(databaseProductName);
}
});
if (databaseTypeOptional.isPresent()) {
return databaseTypeOptional.get();
}
throw new DatabaseTypeUnsupportedException(databaseProductName);
}
}
......@@ -30,7 +30,7 @@ public final class DatabaseTypeTest {
assertThat(DatabaseType.valueFrom("H2"), is(DatabaseType.H2));
assertThat(DatabaseType.valueFrom("MySQL"), is(DatabaseType.MySQL));
assertThat(DatabaseType.valueFrom("Oracle"), is(DatabaseType.Oracle));
assertThat(DatabaseType.valueFrom("SQLServer"), is(DatabaseType.SQLServer));
assertThat(DatabaseType.valueFrom("Microsoft SQL Server"), is(DatabaseType.SQLServer));
assertThat(DatabaseType.valueFrom("DB2"), is(DatabaseType.DB2));
}
......
......@@ -21,6 +21,7 @@ weight = 1
1. [ISSUE #118](https://github.com/dangdangdotcom/sharding-jdbc/issues/118) 同一个线程内先执行DQL后执行DML,DML操作在从库上执行
1. [ISSUE #122](https://github.com/dangdangdotcom/sharding-jdbc/issues/122) bed的fail重试问题
1. [ISSUE #152](https://github.com/dangdangdotcom/sharding-jdbc/issues/152) 可能同一个connection多线程导致问题
1. [ISSUE #150](https://github.com/dangdangdotcom/sharding-jdbc/issues/150) 与最新SQLserver jdbc驱动兼容问题
## 1.3.2
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册