首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

J2EE 應用開發中連接 Oracle 數據庫的實戰指南

     編輯:Oracle 資料庫基礎

前言

在 J2EE 企業級應用開發中,數據庫連接的建立與管理是核心環節之一。本文將系統梳理通過 JDBC-ODBC 橋接器、數據源連接池等方式連接 Oracle 數據庫的完整配置流程,並針對 iPlanet Application Server 6.5 與 Sun Java System Application Server 7 兩大主流應用伺服器進行詳細實操說明,幫助開發者快速掌握生產環境下的最佳實踐。

一、基礎連接方式:JDBC-ODBC 橋接器

雖然 JDBC-ODBC 橋接器已被標記為過時技術,但在維護舊系統或特定環境時仍具參考價值。以下為典型連接代碼示例:

public java.sql.Connection connectDbByJdbcOdbcBridge() {
    java.sql.Connection conn = null;
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        conn = DriverManager.getConnection(
            "jdbc:odbc:ora199", "scott", "tiger");
    } catch (Exception e) {
        System.out.println("ERROR: " + e.getMessage());
    }
    return conn;
}

關鍵參數解析:連接字串 jdbc:odbc:ora199 中的 ora199 為本地 ODBC 數據源名稱(DSN),需預先在 Windows「控制台 → 管理工具 → 數據源 (ODBC)」中配置好 Oracle ODBC 驅動並測試通聯。後兩個參數分別為資料庫用戶名與密碼。

二、生產環境首選:數據源連接池配置實戰

連接池技術透過預先建立並復用連接,顯著降低頻繁創建/銷毀連接的開銷,同時實現統一管理、監控與參數調優,是企業級應用的標準配置。

2.1 iPlanet Application Server 6.5 連接池配置步驟

  1. 打開管理控制台,選擇 Database 面板 → External JDBC Drivers → Add…
  2. 新增 JDBC Driver,名稱設為 ora-type4,Driver Classpath** 填寫 classes12.zip(Oracle JDBC Thin 驅動)的物理路徑。
  3. 切換至 External JDBC DataSources → Add…,建立 JNDI 名稱為 credit2 的數據源:
    • DriverType:選擇剛建立的 ora-type4
    • Datasource:填寫 Oracle 服務名(如 ora199)
    • Connection Pool Parameters:保持預設或依環境調整(最大/最小連接數、超時時間等)
  4. 選中 credit2 → 點擊 Vendor Specific Properties → 新增 URL 屬性,值為完整 JDBC Thin 連接串(例:jdbc:oracle:thin:@192.168.1.100:1521:ora199)。
  5. 保存並重啟服務生效。

iPlanet JDBC Driver 配置

iPlanet DataSource 配置

iPlanet Vendor Properties 配置

2.2 Sun Java System Application Server 7 連接池配置步驟

  1. 將 classes12.zip 放入 .../server1/lib 目錄。
  2. 瀏覽器訪問 https://host:4848 進入管理界面,依序展開 server1 → JDBC → Connection Pools → New…
  3. 建立連接池 MyConnectionPool,類型選 javax.sql.DataSource。
  4. General 頁籤填寫 Datasource Classname:oracle.jdbc.pool.OracleDataSource。
  5. Properties 頁籤刪除無用屬性,新增關鍵屬性:
    • URL:jdbc:oracle:thin:@host:port:sid
    • user / password:資料庫帳密
    • dataSourceName:Oracle 服務名
  6. 調整連接池參數(Steady Pool Size, Max Pool Size, Pool Resize Quantity 等)後 Finish。
  7. 建立 JNDI 資源:JDBC → JDBC Resources → New…,JNDI Name 設為 jdbc/credit2,關聯上述連接池。
  8. 重啟服務生效。

Sun AS 建立連接池

Sun AS 連接池 General 設定

Sun AS 連接池 Properties 設定

Sun AS 連接池參數調整

Sun AS 建立 JDBC Resource

2.3 通用連接池獲取連接代碼

無論上述哪種應用伺服器,應用層均可透過統一 JNDI 名稱獲取連接:

public class DbConnection {
    public java.sql.Connection connectDbByConnectionPool() {
        java.sql.Connection conn = null;
        try {
            Context ctx = new InitialContext();
            DataSource ds = (DataSource) ctx.lookup("jdbc/credit2");
            conn = ds.getConnection();
        } catch (Exception e) {
            System.out.println("ERROR: " + e.getMessage());
        }
        return conn;
    }
}

三、連接池的核心優勢

  • 統一管控:連接參數集中配置,便於監控洩漏、調優參數(如連接存活檢查、超時回收)。
  • 解耦遷移:應用僅依賴 JNDI 名稱,底層資料庫 IP、埠口、甚至更換 DB 廠商(Oracle → PostgreSQL)無需修改代碼。
  • 效能提升:消除重複建立連接的網路握手與驗證開銷,支撐高併發場景。

結語

從早期的 JDBC-ODBC 橋接到現代標準的 DataSource 連接池,J2EE 與 Oracle 的整合方式已歷經多代演進。掌握連接池在主流應用伺服器上的配置細節,不僅能解決當前開發痛點,更為系統未來的擴展與維護奠定堅實基礎。建議新專案直接採用 JNDI + 連接池模式,並配合監控工具(如 JConsole、VisualVM)持續觀測連接使用狀況,做到心中有數。

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