2017-04-10 68 views
0

我想實現一個連接池到我的Java Web應用程序的MySQL數據庫。在網上查找時,我發現了一些指南,可以將基於DriverManager的連接更改爲使用DataSource類型的連接。javax.sql.DataSource連接池混亂

從我可以從a tutorial I found from Oracle得知,DataSource會自動從內置連接池,特別是本節產生連接。

變量ds表示一個DataSource對象,它產生到數據庫COFFEEBREAK的池連接。您只需要檢索一次該DataSource對象,因爲您可以根據需要使用它來生成儘可能多的池連接。調用ds變量上的方法getConnection會自動生成池連接,因爲ds變量表示的DataSource對象已配置爲生成池連接。

然而,我發現有些地方說,數據源不便於連接池和ConnectionPoolDataSource的是,做類型。所以我對此有點困惑。

那麼DataSource做連接池嗎?如果是這樣,它會自動化嗎?是否將所有的servlet設置爲初始化以建立連接?有沒有更直接的指導/資源來了解這一點?

抱歉的問題串,任何幫助或點在正確的方向將不勝感激。

+1

你完全錯過了這一點。前面幾段講述了使用* DataSource *的* specific *實現* do *提供連接池。 Apache DBPC就是這樣。然後教程繼續說明,使用這樣的源代碼在語法上與使用任何其他'DataSource相同。「 – EJP

+0

您不應該直接使用」javax.sql.ConnectionPoolDataSource「的實現,它應該被連接池使用,它不會(或不應該)自己提供連接池。 –

回答

1

DataSource是一個接口,只是看着它,你不知道它是否合併。無論如何,你總是可以使用你自己的顯式連接池(我偏愛HikariCP),所以你不需要猜測,你就可以確切地知道你在用你的池做什麼。