java 數據庫鏈接池常見分類和使用

在Java程序中,開源的數據庫鏈接池有如下幾種 :html

一、C3P0:是一個開放源代碼的JDBC鏈接池,它在lib目錄中與Hibernate   一塊兒發佈,包括了實現jdbc3和jdbc2擴展規範說明的Connection 和Statement 池的DataSources 對象。
二、Proxool:是一個Java SQL Driver驅動程序,提供了對選擇的其它類型的驅動程序的鏈接池封裝。能夠很是簡單的移植到現存的代碼中,徹底可配置,快速、成熟、健壯。能夠透明地爲現存的JDBC驅動程序增長鏈接池功能。
三、Jakarta DBCP:DBCP是一個依賴Jakarta  commons-pool 對象池機制的數據庫鏈接池。DBCP能夠直接的在應用程序中使用。
四、DDConnectionBroker:是一個簡單、輕量級的數據庫鏈接池。
五、DBPool:是一個高效、易配置的數據庫鏈接池。它除了支持鏈接池應有的功能以外,還包括了一個對象池,使用戶可以開發一個知足本身需求的數據庫鏈接池。
六、XAPool:是一個XA數據庫鏈接池。它實現了javax.sql.XADataSource並提供了鏈接池工具。
七、Primrose:是一個Java開發的數據庫鏈接池。當前支持的容器包括Tomcat4&五、Resin3與JBoss3。它一樣也有一個獨立的版本,能夠在應用程序中使用而沒必要運行在容器中。Primrose經過一個WEB接口來控制SQL處理的追蹤、配置,以及動態池管理。在重負荷的狀況下可進行鏈接 請求隊列處理。
八、SmartPool:是一個鏈接池組件,它模仿 應用服務器 對象池的特性。SmartPool可以解決一些臨界問題如鏈接泄漏(connection leaks)、鏈接阻塞、打開的JDBC對象(如Statements、PreparedStatements)等。
九、MiniConnectionPoolManager:是一個輕量級 JDBC數據庫鏈接池。它只須要Java1.5(或更高)而且沒有依賴第三方包。
十、BoneCP:是一個快速、開源的數據庫鏈接池。幫用戶管理 數據鏈接,讓應用程序能更快速地訪問數據庫。比C3P0/DBCP鏈接池速度快25倍。
十一、Druid:Druid不只是一個數據庫鏈接池,還包含一個ProxyDriver、一系列內置的JDBC組件庫、一個SQL Parser。
支持全部JDBC兼容的數據庫,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等。
Druid針對Oracle和MySql作了特別優化,好比:
  • Oracle的PS Cache內存佔用優化
  • MySql的ping檢測優化
Druid提供了MySql、Oracle、Postgresql、SQL-92的SQL的完整支持,這是一個手寫的高性能SQL Parser,支持Visitor模式,使得分析SQL的抽象語法樹很方便。
簡單SQL語句用時10微秒之內,複雜SQL用時30微秒。
經過Druid提供的SQL Parser能夠在JDBC層攔截SQL作相應處理,好比說分庫分表、審計等。Druid防護SQL注入攻擊的WallFilter,就是經過Druid的SQL Parser分析語義實現的
 
這些池底層都是對 driver-class-name=com.mysql.jdbc.Driver 對這個驅動進行了封裝。
 
經常使用鏈接池的講解: http://www.javashuo.com/article/p-tvphzhdk-ba.html
Springboot version1 版本 默認使用tomcat -jdbc  ,詳細講解  https://blog.csdn.net/weixin_40575726/article/details/80044192
Springboot 2 默認數據庫鏈接池選擇了HikariCP,詳細講解 https://blog.csdn.net/zxl315/article/details/80420688
相關文章
相關標籤/搜索