mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
补充测试,并且支持设置Driver
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@205 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
@@ -594,6 +594,10 @@ public abstract class DruidAbstractDataSource implements DataSource, DataSourceP
|
||||
public Driver getDriver() {
|
||||
return driver;
|
||||
}
|
||||
|
||||
public void setDriver(Driver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Filter> getFilters() {
|
||||
@@ -715,6 +719,10 @@ public abstract class DruidAbstractDataSource implements DataSource, DataSourceP
|
||||
conn = new FilterChainImpl(dataSource).connection_connect(info);
|
||||
} else {
|
||||
conn = dataSource.getDriver().connect(url, info);
|
||||
|
||||
if (conn == null) {
|
||||
throw new SQLException("connect error, url " + url);
|
||||
}
|
||||
}
|
||||
|
||||
conn.setAutoCommit(dataSource.isDefaultAutoCommit());
|
||||
|
||||
@@ -106,22 +106,28 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
this.jdbcUrl = this.jdbcUrl.trim();
|
||||
}
|
||||
|
||||
if (this.driverClass == null || this.driverClass.isEmpty()) {
|
||||
this.driverClass = JdbcUtils.getDriverClassName(this.jdbcUrl);
|
||||
}
|
||||
if (this.driver == null) {
|
||||
if (this.driverClass == null || this.driverClass.isEmpty()) {
|
||||
this.driverClass = JdbcUtils.getDriverClassName(this.jdbcUrl);
|
||||
}
|
||||
|
||||
try {
|
||||
driver = (Driver) Class.forName(this.driverClass).newInstance();
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new SQLException(e.getMessage(), e);
|
||||
} catch (InstantiationException e) {
|
||||
throw new SQLException(e.getMessage(), e);
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new SQLException(e.getMessage(), e);
|
||||
}
|
||||
} else {
|
||||
if (this.driverClass == null) {
|
||||
this.driverClass = driver.getClass().getName();
|
||||
}
|
||||
}
|
||||
|
||||
this.dbType = JdbcUtils.getDbType(jdbcUrl, driverClass.getClass().getName());
|
||||
|
||||
try {
|
||||
driver = (Driver) Class.forName(this.driverClass).newInstance();
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new SQLException(e.getMessage(), e);
|
||||
} catch (InstantiationException e) {
|
||||
throw new SQLException(e.getMessage(), e);
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new SQLException(e.getMessage(), e);
|
||||
}
|
||||
|
||||
for (Filter filter : filters) {
|
||||
filter.init(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user