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

J2EE 應用中 Oracle 資料庫連接全攻略:JDBC 三種模式與連接池配置

     編輯:Java 相關知識

前言

資料庫連接是 J2EE 開發核心環節。本文系統整理本地 JDBC 連接三種模式(OCI、Thin、JDBC-ODBC Bridge),以及 iPlanet Application Server 6.5 與 Sun ONE Application Server 7 兩大主流應用伺服器的連接池配置實戰,最後示範透過 JNDI 從連接池取得連接的統一範式。

一、本地 JDBC 直連 Oracle 三種模式

1. OCI 模式(需安裝 Oracle Client)

依賴本地動態庫,適用於已安裝 Oracle Client 的環境。須將 classes12.zip 加入 classpath。

// 連接字串格式:jdbc:oracle:oci8:username/password@serviceName
final static String sConnStr = "jdbc:oracle:oci8:sr/sr@ora199";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(sConnStr);

2. Thin 模式(純 Java,推薦)

無需 Client,僅需 ojdbc14.jar(或同版本),攜帶性最佳。連接字串含 IP、Port、SID:

// 格式:jdbc:oracle:thin:@host:port:SID
String connStr = "jdbc:oracle:thin:@10.1.4.199:1521:ora199";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(connStr, "sr", "sr");

提供多載建構子支援動態指定 IP 與 Service Name,靈活度高。

3. JDBC-ODBC Bridge 模式(不推薦)

依賴系統 ODBC 資料源設定,效能較差,逐漸被淘汰:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:ora199", "sr", "sr");

二、應用伺服器連接池配置實戰

1. iPlanet Application Server 6.5

  1. 管理主控台 → Database → External JDBC Drivers → Add → 新增 Driver ora-type4,Classpath 指向 classes12.zip
  2. External JDBC DataSources → Add → JNDI 名稱 credit2,DriverType 選 ora-type4,Datasource 填 ora199
  3. 選擇 credit2 → Vendor Specific Properties → 新增 URL 屬性
  4. 重啟伺服器生效

2. Sun ONE Application Server 7

  1. 將 classes12.zip 放入 server1/lib
  2. 管理介面 (port 4848) → server1 → JDBC → Connection Pools → New → 名稱 MyConnectionPool
  3. General 設定 Datasource Classname;Properties 刪除多餘屬性、新增 URL、dataSourceName 填 ora199
  4. JDBC Resources → New → 建立 JNDI 名稱對應連接池
  5. 重啟生效

三、統一從連接池取得連接

無論上述哪種伺服器,應用端程式碼完全一致:

Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/credit2");
Connection conn = ds.getConnection();

四、連接池優勢總結

  • 統一管理:連接參數集中配置、監控、優化;自動回收未關閉連接
  • 移植性:應用僅依賴 JNDI 名稱,與具體資料庫位置、類型解耦,利於遷移

最佳實踐建議

  1. 生產環境務必使用連接池,避免頻繁建立/銷毀連接開銷
  2. Thin 模式為首選,除非特殊需求(如 OCI 特有功能)
  3. 連接池參數(初始/最大連接數、超時、驗證查詢)依負載測試調整
  4. 程式碼中嚴格遵循 try-with-resources 或 finally 關閉連接、Statement、ResultSet
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved