首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

Servlet JDBC 連線池進階實作(四):DBConnectionManager 核心實作詳解

     編輯:關於JSP

本文深入解析 DBConnectionManager 類別的單例模式實作、初始化流程、驅動程式載入、連線池建立與配置檔案格式。

單例模式實作

private DBConnectionManager() { init(); }
static synchronized public DBConnectionManager getInstance() {
    if (instance == null) instance = new DBConnectionManager();
    clients++;
    return instance;
}

私有建構子、同步靜態工廠方法、客戶端計數器協調資源釋放時機。

初始化流程 init()

  1. 透過 getResourceAsStream("/db.properties") 讀取配置檔(從 classpath 根目錄)
  2. 載入 Properties 物件,設定日誌檔(預設 DBConnectionManager.log)
  3. 呼叫 loadDrivers() 註冊 JDBC 驅動程式
  4. 呼叫 createPools() 建立連線池

db.properties 配置檔格式

drivers=sun.jdbc.odbc.JdbcOdbcDriver jdbc.idbDriver
logfile=D:\\user\\src\\java\\DBConnectionManager\\log.txt
idb.url=jdbc:idb:c:\\local\\javawebserver1.1\\db\\db.prp
idb.maxconn=2
access.url=jdbc:odbc:demo
access.user=demo
access.password=demopw

屬性說明:drivers(空白分隔驅動類別)、logfile、各連線池以名稱為前綴:<poolname>.url(必填)、.maxconn(0=無限制)、.user、.password。Windows 路徑反斜線需雙寫。

驅動程式載入 loadDrivers()

使用 StringTokenizer 解析 drivers 屬性,逐一 Class.forName().newInstance() 載入、向 DriverManager 註冊,並加入私有 drivers Vector 供後續反註冊用。

連線池建立 createPools()

枚舉所有屬性名,以 .url 結尾者識別為連線池定義,解析參數後實例化 DBConnectionPool,存入 Hashtable pools(key=池名,value=池物件)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved