我正在學習有關JDBC
連接池,這聽起來很容易用JNDI
得到DataSource
實例:如何處理連接池和DAO?
DataSource ds = (DataSource)ctx.lookup("jdbc/myDB");
所有我發現顯示教程此代碼只有一個對象,但我的問題是如何使用DataSource
當我有幾個DAO
對象需要從數據庫中獲取數據。
它是確定對每一個新
DAO
對象的構造函數中使用上面的代碼,用於連接池?我認爲每次都會返回相同的DataSource
,就像Dictionary Singleton會做的一樣,持有一個DataSource
並返回它,或者我錯了,每次都會返回一個不同的DataSource
並使用不同的池,從而破壞我的目的?我應該認爲
DataSource
在辛格爾頓和只運行JNDI
搜索一次或者是搜索開銷忽略不計,這是一個愚蠢的優化?
你有沒有試過https://commons.apache.org/proper/commons-dbcp/或https://brettwooldridge.github.io/HikariCP/?它們提供開箱即用的連接池功能,無需重新編寫。對不起,可能不是你的問題的答案。只是想過讓你知道。祝你好運! – harshavmb
我將使用tomcat 8內部的解決方案,但它根本不涉及這個問題,不過謝謝 – mFeinstein