1. 程式人生 > >c3p0,dbcp與druid 三大連線池的區別

c3p0,dbcp與druid 三大連線池的區別

dbcp連線池pom檔案

<dependency>

<groupId>commons-dbcp</groupId>

<artifactId>commons-dbcp</artifactId>

<version>${commons.dbcp}</version>

</dependency>

DBCP是一個依賴Jakarta 

commons-pool物件池機制的資料庫連線池.DBCP可以直接的在應用程式中使用,Tomcat的資料來源使用的就是DBCP。

druid連線池pom檔案

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.0.5</version>

</dependency>

阿里出品,淘寶和支付寶專用資料庫連線池,但它不僅僅是一個數據庫連線池,它還包含一個 

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分析語義實現的。