import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
public class PoolUtil{
//創建出BasicDataSource類對象
private static BasicDataSource datasource = new BasicDataSource();
private static Properties per = new Properties();
//靜態代碼塊,對象BasicDataSource對象中的配置,自定義
static{
try {
//in = new FileInputStream(PoolUtil.class.getClassLoader().getResourceAsStream("db.properties"));
//r.load(in);
per.load(PoolUtil.class.getClassLoader().getResourceAsStream("db.properties"));
String driver = per.getProperty("driver");
String url = per.getProperty("url");
String username = per.getProperty("username");
String password = per.getProperty("password");
Integer maxActive = Integer.parseInt(per.getProperty("maxActive"));
Integer maxWait = Integer.parseInt(per.getProperty("maxWait"));
datasource.setDriverClassName(driver);
datasource.setUrl(url);
datasource.setUsername(username);
datasource.setPassword(password);
//對象連接池中的連接數量配置,可選的
datasource.setInitialSize(10);//初始化的連接數
datasource.setMaxActive(maxActive);//最大連接數量
datasource.setMaxWait(maxWait);
datasource.setMaxIdle(5);//最大空閒數
datasource.setMinIdle(1);//最小空閒
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//定義靜態方法,返回BasicDataSource類的對象
public static DataSource getDataSource(){
return datasource;
}
public static void closeConnection(Connection conn){
try {
/*
* 若該連接是通過連接池獲取的,那麼調用
* 這個連接的close方法並不是與數據庫斷開
* 連接了,而僅僅是將該連接還給連接池。
*/
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}