數據庫連接池

package com.util;


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();
}
}
    
}
發佈了31 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章