一個動態的網站頻繁地從數據庫中取得數據來構成html頁面。每一次請求一個頁面都會發生數據庫操作。但連接數據庫卻是一個需要消耗大量時間的工作,因為請求連接需要建立通訊,分配資源,進行權限認證。這些工作很少能在一兩秒內完成。所以,建立一個連接,然後再後續的查詢中都使用此連接會大大地提高性能。因為servlet可以在不同的請求間保持狀態,因此采用數據庫連接池是一個直接的解決方案。
Servlet在服務器的進程空間中駐留,可以方便而持久地維護數據庫連接。接下來,我們介紹一個完整的連接池的實現。在實現中,有一個連接池管理器管理連接池對象,其中每一個連接池保持一組數據庫連接對象,這些對象可為任何servlet所使用。
一、數據庫連接池類 DBConnectionPool,提供如下的方法:
1、從池中取得一個打開的連接;
2、將一個連接返回池中;
3、在關閉時釋放所有的資源,並關閉所有的連接。
另外,DBConnectionPool還處理連接失敗,比如超時,通訊失敗等錯誤,並且根據預定義的參數限制池中的連接數。
二、管理者類,DBConnetionManager,是一個容器將連接池封裝在內,並管理所有的連接池。它的方法有:
1、 調用和注冊所有的jdbc驅動程序;
2、 根據參數表創建DBConnectionPool對象;
3、 映射連接池的名字和DBConnectionPool實例;
4、 當所有的連接客戶退出後,關閉全部連接池。
這些類的實現,以及如何在servlet中使用連接池的應用在隨後的文章中講解