(1)数据库连接池构建方法
1、利用Apache的Commons Pool通过继承BasePooledObjectFactory类实现一个PoolableConnectionFactory类,实现将JDBC数据库连接Connection对象包裹为一个PooledObject,并通过create()方法实现创建Connection对象,利用重载passivateObject、destroyObject等方法来控制Connection对象在从连接池取出、到返回连接池、再到最终被销毁的整个生命周期的一些细节。代码片段参考如下:
public class PoolableConnectionFactory extends BasePooledObjectFactory{
private String driver = null;
private String url = null;
private String username = null;
private String password = null;
public PoolableConnectionFactory(ConnectionConfig conf){
super();
driver = conf.getDriver();
url = conf.getUrl();
username = conf.getUsername();
password= conf.getPassword();
}
@Override
public Connection create() throws Exception {
Class.forName(driver);
Connection connection = DriverManager.getConnection(url, username, password);
return connection;
}
@Override
public PooledObject wrap(Connection connection) {
return new DefaultPooledObject(connection);
}
@Override
public void passivateObject(PooledObject object) {
if(object != null){
Connection connection = (Connection)object;
try {
connection.setAutoCommit(true);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@Override
public void destroyObject(PooledObject object) {
if(object != null){
Connection connection = (Connection)object;
try {
connection.close();
} catch (SQLException e) {
e.pr