文章出處
View Code
文章列表
一、連接池的作用
數據庫的連接是一種很重要的資源,如果一個項目比較小,連接數據庫的次數比較少,我們可以采取直連的方式:“獲取連接----使用----關閉連接”。但是如果一個網站訪問量很大,假如同時有幾百萬個用戶,這時候就會創建幾百萬個連接,這樣就很容易使數據庫崩潰,從而使網站癱瘓。這時候數據庫的連接池技術就可以起到作用了,維護連接池中的連接個數,如果來個請求連接,先看連接池中是否有空閑的連接,如果有就分配出去,用完就釋放,否則這個請求就必須等待。這就很好的解決了數據庫的壓力。這就像去餐廳一樣,人多的時候我們就得排號等待空閑的位置。
二、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
方式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()); } }
文章列表
全站熱搜