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

Servlet JDBC 連線池進階實作(三):DBConnectionPool 核心邏輯詳解

     編輯:關於JSP

DBConnectionPool 代表單一資料庫連線池,擁有名稱、JDBC URL、使用者帳密、最大連線數。可為不同權限操作建立同 URL 不同帳密的多個池。

建構子

public DBConnectionPool(String name, String URL, String user,
        String password, int maxConn) {
    this.name = name; this.URL = URL; this.user = user;
    this.password = password; this.maxConn = maxConn;
}

取得連線:getConnection()

同步方法,從 freeConnections Vector 取得閒置連線(採 round-robin:取首元素、歸還加尾端,減少連線閒置被資料庫斷開風險)。檢查 isClosed(),無效則遞歸重試。若無閒置連線且未達上限(maxConn==0 表無限制),呼叫 newConnection() 建立新連線;否則回傳 null。

建立新連線:newConnection()

private Connection newConnection() {
    try {
        if (user == null) con = DriverManager.getConnection(URL);
        else con = DriverManager.getConnection(URL, user, password);
        log("Created a new connection in pool " + name);
    } catch (SQLException e) {
        log(e, "Can not create a new connection for " + URL);
        return null;
    }
    return con;
}

核心邏輯:閒置連線重用、有效性檢查、上限控制、帳密驗證,構成健全的連線池基礎。

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