- 輕量級Java EE企業應用開發實戰
- 柳偉衛編著
- 591字
- 2022-07-29 14:31:28
5.7 實戰:使用數據庫連接池DBCP
DBCP(DataBase Connection Pool,數據庫連接池)是流行的數據庫連接池工具,是Apache上的一個Java連接池項目,也是Tomcat使用的連接池組件。目前,DBCP新版本為2.x,基于DBCP我們可以方便地實現數據庫連接的重用。
本節將演示如何基于DBCP來實現數據庫連接池。我們創建了一個名為hello-dbcp的Maven項目作為案例。
5.7.1 添加DBCP依賴
要使用DBCP,需要在pom.xml文件中添加DBCP依賴,配置如下:

完整的pom.xml文件內容如下:


5.7.2 編寫數據庫工具類
為了簡化數據的連接操作,編寫了基于DBCP的數據庫工具類,代碼如下:



其中,setupDataSource方法用于初始化DBCP數據源,方法參數是連接URI及連接屬性。該數據源由DBCP框架實現,可以實現連接池的管理。連接屬性是由lite.properties文件中加載進來的。
當我們執行getConnection()方法時,連接是從連接池獲取的,而非實時創建的,因此可以實現連接的重用。
同理,當我們執行releaseResourcesn()方法時,其中的connection.close()并非真正地關閉連接,而是將連接放回了連接池。
5.7.3 理解DbUtil的配置化
下面來看DbUtil的初始化:

在上述方法中,將lite.properties文件中的內容轉成Java的配置類Properties對象。也就是說,創建數據源時常用的配置都可以放置在lite.properties文件中。
lite.properties文件處于Maven應用的resources目錄下,內容如下:

上述4個參數是建立JDBC連接的基本參數,最終會傳遞給setupDataSource方法。
5.7.4 編寫測試用例
測試用例代碼如下:



DbUtilTest.java的代碼與hello-jdbc項目的JdbcTest.java的代碼非常類似。唯一的區別是,數據庫連接是從DbUtil.getConnection()獲取的,而釋放資源的方法則是調用的DbUtil.releaseResources()方法。
使用以下命令執行測試:
mvn test
運行測試用例,若看到控制臺輸出如下內容,則說明測試成功:

- Implementing Modern DevOps
- Microsoft Application Virtualization Cookbook
- ASP.NET Core 2 and Vue.js
- C#應用程序設計教程
- NGINX Cookbook
- OpenCV 4計算機視覺項目實戰(原書第2版)
- ServiceNow:Building Powerful Workflows
- C++反匯編與逆向分析技術揭秘(第2版)
- Python從入門到精通
- 搞定J2EE:Struts+Spring+Hibernate整合詳解與典型案例
- 后臺開發:核心技術與應用實踐
- Arduino可穿戴設備開發
- Python Digital Forensics Cookbook
- C# 7.1 and .NET Core 2.0:Modern Cross-Platform Development(Third Edition)
- Oracle Database XE 11gR2 Jump Start Guide