前言:(尚在學習中,各種摘抄,后續有補充)
數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而不是再重新建立一個;釋放空閑時間超過最大空閑時間的數據庫連接來避免因為沒有釋放數據庫連接而引起的數據庫連接遺漏。在一定程度上可以明顯優化服務器應用程序的性能,提高程序執行效率和降低系統資源開銷。
連接池基本的思想是在系統初始化的時候,將數據庫連接作為對象存儲在內存中,當用戶需要訪問數據庫時,并非建立一個新的連接,而是從連接池中取出一個已建立的空閑連接對象。使用完畢后,用戶也并非將連接關閉,而是將連接放回連接池中,以供下一個請求訪問使用。而連接的建立、斷開都由連接池自身來管理。同時,還可以通過設置連接池的參數來控制連接池中的初始連接數、連接的上下限數以及每個連接的最大使用次數、最大空閑時間等等。也可以通過其自身的管理機制來監視數據庫連接的數量、使用情況等。
1、C3P0:是一個開放源代碼的JDBC連接池,它在lib目錄中與Hibernate[2] 一起發布,包括了實現jdbc3和jdbc2擴展規范說明的Connection 和Statement 池的DataSources 對象。 2、PRoxool、Jakarta DBCP等(這里因為時間關系不詳細介紹)
C3P0官網:http://sourceforge.net/projects/c3p0/
c3p0-0.8.4.5.jar
a.通過修改%Tomcat_home%/conf/server.xml文件,在指定的位置添加如下代碼:
<Resource name="xushouwei" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="xushouwei"> <!--工廠設置--> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <!--驅動設置,該驅動放在tomcat的common/lib下,或者放在該站點自己的lib目錄下--> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <!--設置url--> <name>url</name> <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=spdb</value> </parameter> <parameter> <!--設置連接數據庫的用戶名--> <name>username</name> <value>sa</value> </parameter> <parameter> <!--設置連接數據庫的密碼--> <name>password</name> <value>xushouwei</value> </parameter> <parameter> <!--在連接池中最大的激活連接數--> <name>maxActive</name> <value>200</value> </parameter> <parameter> <!--在連接池中最大的保留空閑連接數--> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <!--客戶端在隊列池中最大等待時間,按秒計算--> <name>maxWait</name> <value>-1</value> </parameter> </ResourceParams>類似官方使用文檔一樣的東東:http://www.mchange.com/projects/c3p0/index.html 前人的博客:http://www.cnblogs.com/Jasxu/p/tomcat_config.html
新聞熱點
疑難解答