《Apache-DBCP數據庫連接池的使用》要點:
本文介紹了Apache-DBCP數據庫連接池的使用,希望對您有用。如果有疑問,可以聯系我們。
相關主題:apache配置
1.什么是數據庫連接池?
數據庫連接是一種關鍵的有限的昂貴的資源,這一點在多用戶的網頁應用法式中體現得尤為突出.對數據庫連接的管理能顯著影響到整個應用法式的伸縮性和健壯性,影響到法式的性能指標.數據庫連接池正是針對這個問題提出來的.
數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而不是再重新建立一個;釋放空閑時間跨越最大空閑時間的數據庫連接來避免因為沒有釋放數據庫連接而引起的數據庫連接遺漏.這項技術能明顯提高對數據庫操作的性能.
2.為什么必要數據庫連接池?
當對數據庫的拜訪過大時,如果沒有數據庫連接池,那么頻繁的對數據庫進行連接、關閉連接等操作對數據庫的壓力是非常大的;如果使用了數據庫連接池則同時拜訪數據庫的連接就會被很好的控制,從而提高性能.
2.關鍵配置
為了發揮數據庫連接池的作用,在初始化時將創建一定數量的數據庫連接放到連接池中,這些數據庫連接的數量是由最小數據庫連接數來設定的.無論這些數據庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數量.連接池的最大數據庫連接數量限定了這個連接池能占有的最大連接數,當應用程序向連接池哀求的連接數超過最大連接數量時,這些哀求將被加入到等待隊列中.
最小連接數setMinIdle():
是數據庫一直堅持的數據庫連接數,所以如果應用程序對數據庫連接的使用量不大,將有大量的數據庫資源被浪費.
初始化連接數setInitialSize():
連接池啟動時創立的初始化數據庫連接數量.
最大連接數setMaxIdle():
是連接池能申請的最大連接數,如果數據庫連接哀求超過此數,后面的數據庫連接哀求被加入到等待隊列中.如果設置為非正數則表示不限制.
最大等待時間setMaxWaitMillis():
當沒有可用連接時,連接池等待連接被歸還的最大時間,超過時間則拋出異常,可設置參數為0或者負數使得無限等待(根據分歧連接池配置).
//可以創立這樣一個工具類public class ConnectionManager { private static String DRIVER = "com.mysql.jdbc.Driver"; private static String URL = "jdbc:mysql:///t_message"; //"jdbc:mysql:///t_message" private static String USERNAME = "root"; private static String PASSWORD = "rootroot"; private static BasicDataSource datasource = new BasicDataSource(); static { datasource.setDriverClassName(DRIVER); datasource.setUrl(URL); datasource.setUsername(USERNAME); datasource.setPassword(PASSWORD); datasource.setInitialSize(5); datasource.setMaxIdle(20); datasource.setMinIdle(5); datasource.setMaxWaitMillis(3000); } /** * 獲取數據庫連接池 * @return */ public static DataSource getDataSource(){ return datasource; } public static Connection getConnection() { Connection conn = null; try { Class.forName(DRIVER); conn = datasource.getConnection(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { throw new DataAccessException("數據庫連接異常"); } return conn; }}
維易PHP培訓學院每天發布《Apache-DBCP數據庫連接池的使用》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。