1. 程式人生 > 資料庫 >資料庫連線池 (c3p0和druid)

資料庫連線池 (c3p0和druid)

6.資料庫連線池--->因為連線(Connection)建立在try  catch中會被頻繁的刪除,在頻繁的建立連線會拖延系統的時間,因此引入了資料庫池。
		*概念:其實就是一個容器,存放資料庫連線的容器;當系統初始化好後,容器被建立,容器中會申請一些連線物件,當用戶來訪問資料庫的時候,從容器中獲取連線物件,使用者訪問完後,將會把連線物件歸還給容器。
			  例子:這下所有的服務員被一家公司集中管理,餐館需要服務員時直接去公司申請,不在需要自己去去找服務員(高效),這樣節約了自己找人的成本,因為公司集中化管理給的價格也更低(節約了資源)
		*好處,優點:
			1.節約系統的資源(集中管理連線物件,更資源分配更均勻)
			2.高效(不需要向底層申請,節約時間,申請和返回不需要底層的參加)
		*實現
			1.標準的介面:DataSource	(java.sql包內的)
				1.方法;
					*獲取連線:getConnection()---->獲取連線
					*歸還連線:如果連線物件Connetion是從連線池中獲取的,那麼呼叫的不是關閉連線,而是歸還連線到容器中,他們名字都相同,意義不同;呼叫Connection.close(); 
			2.一般我們不去實現它,有資料庫廠商來實現
				1.C3P0:資料庫連線池技術
				2.Druid:資料庫連線池實現技術,有阿里巴巴提供。
			3.C3P0:資料庫連線池技術
					*步驟
						 1.匯入jar包(兩個) C3P0-0.9.2.jar and  mchange-commons-java-0.2.12.jar還有匯入mysql的驅動包			 
						 2.	定義配置檔案:
								*名稱:c3p0.properties 或者 c3p0-config.xml(名稱是固定了的,其自帶的有)
								*路徑:ClassPath路徑下(類路徑下),直接將檔案放在src目錄下
						 3.建立核心物件,資料庫連線池物件ComboPooledDataSource
						 4.獲取連線:getConnection
			 4.Druid:資料庫連線池,由阿里巴巴提供
					1.步驟:
						1.匯入jar包 druid-1.0.9.jar
						2.定義配置檔案
							*是properties形式的
							*可以叫任意名稱,放置在任意位置
						3.載入配置檔案,properties	
						4.獲取資料庫的連線池物件;通過工廠類來獲取 DruidDataSourceFactory
						5.獲取連線:getConnection();
					2.定義一個工具類
					    1.定義一個類 JDBCUtils
					    2.使用靜態程式碼塊來載入配置檔案properties,初始化連線池物件。
					    3.提供的方法
						    1.獲取連線方法:通過資料庫連線池獲取連線
						    2.提供一個獲取連線池物件的方法
							3.釋放資源