什么是數據源-DataSource
簡單理解為數據源頭,提供了應用程序所需要數據的位置。數據源保證了應用程序與目標數據之間交互的規范和協議,它可以是數據庫,文件系統等等。其中數據源定義了位置信息,用戶驗證信息和交互時所需的一些特性的配置,同時它封裝了如何建立與數據源的連接,向外暴露獲取連接的接口。應用程序連接數據庫無需關注其底層是如何如何建立的,也就是說應用業務邏輯與連接數據庫操作是松耦合的。 以下只討論當數據源為數據庫的情況,且為Java環境下JDBC規范下的如何建立與數據庫的連接,其他情況類似。
JDBC2.0 提供了javax.sql.DataSource接口,它負責建立與數據庫的連接,當在應用程序訪問數據庫時不必編寫連接數據庫的代碼,直接引用DataSource獲取數據庫的連接對象即可。用於獲取操作數據庫Connection對象。
數據源與數據連接池的關系
數據源DataSource建立多個數據庫連接池Connection Pool,這些數據庫連接(Connection)會保存在數據連接池中,當需要訪問數據庫時,只需要你從數據庫連接池中獲取空閑的數據庫的連接,當程序員訪問數據庫結束時,數據連接會放回數據庫連接池中。
數據庫連接池的優勢
傳統的JDBC訪問數據庫技術,每次訪問數據庫都需要通過數據庫驅動器Driver和數據庫名稱以及密碼等等資源建立數據庫連接。這樣的連接存在倆大問題:1.頻繁的建立數據庫連接與斷開數據庫,會消耗大量的資源和時間,降低效率。2,數據庫的連接需要用戶名和密碼等等。這些需要一定的內存和cpu一定開銷。