資料庫連線池 (c3p0和druid)
阿新 • • 發佈:2020-12-24
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.釋放資源