一、連接配接池的作用
資料庫的連接配接是一種很重要的資源,如果一個項目比較小,連接配接資料庫的次數比較少,我們可以采取直連的方式:“擷取連接配接----使用----關閉連接配接”。但是如果一個網站通路量很大,假如同時有幾百萬個使用者,這時候就會建立幾百萬個連接配接,這樣就很容易使資料庫崩潰,進而使網站癱瘓。這時候資料庫的連接配接池技術就可以起到作用了,維護連接配接池中的連接配接個數,如果來個請求連接配接,先看連接配接池中是否有空閑的連接配接,如果有就配置設定出去,用完就釋放,否則這個請求就必須等待。這就很好的解決了資料庫的壓力。這就像去餐廳一樣,人多的時候我們就得排号等待空閑的位置。
二、dbcp的使用
1.導入jar包。
dbcp依賴3個jar包。
commons-dbcp2-2.1.1.jar
commons-logging-1.1.1.jar
commons-pool2-2.4.2.jar
另外連接配接資料庫還需要單獨的jar包,我的資料庫是MySql,是以我用的是:mysql-connector-java-5.1.14.jar
2.配置參數
方式1.:通過配置檔案配置(dbcp.properties)

1 driverClassName=com.mysql.jdbc.Driver
2 url=jdbc:mysql://localhost/paper_tag
3 username=root
4 password=admin
5 maxActive=30
6 maxIdle=10
7 maxWait=1000
8 initialSize=5
View Code
方式2:通過代碼配置
BasicDataSource bds = new BasicDataSource();
bds.setUrl(url);
bds.setDriverClassName(driverClassName);
bds.setUsername(username);
bds.setPassword(password);
bds.setInitialSize(initialSize);
bds.setMaxActive(maxActive);
bds.setMinIdle(minIdle);
bds.setMaxIdle(maxIdle);
bds.setMaxWait(maxWait);
3. 擷取連接配接
- 下面是擷取連接配接的類DBCPUtil
private static DataSource ds; private static final String configFile = "/dbcp.properties"; public DBCPUtil() { initDBCP(); } private void initDBCP() { Properties prop = new Properties(); try { prop.load(Object.class.getResourceAsStream(configFile)); ds = BasicDataSourceFactory.createDataSource(prop); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } public Connection getConn() { Connection conn = null; if(ds != null) { try { conn = ds.getConnection(); conn.setAutoCommit(false); } catch (SQLException e) { e.printStackTrace(); } } return conn; } public static void main(String[] args) { DBCPUtil db = new DBCPUtil(); System.out.println(db.getConn()); } }