补充测试,并且支持设置Driver

git-svn-id: http://code.alibabatech.com/svn/druid/trunk@205 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-05-27 14:39:10 +00:00
parent 24fe67357a
commit a12729573d
3 changed files with 87 additions and 13 deletions
@@ -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);
}