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

JDBC 連接 DB2 完全指南:本地與遠端連線、驅動程式註冊與 JSP 整合技巧

     編輯:DB2 教學

JDBC 基礎環境

  • JDBC 為 JDK 核心套件 (Java Tiger 起),直接 import java.sql.*; 即可使用。
  • DB2 提供兩類 JDBC 驅動:
    • Type 2 (本地/應用程式驅動):COM.ibm.db2.jdbc.app.DB2Driver,需安裝 DB2 Client,效能最佳。
    • Type 4 (網路/通用驅動):COM.ibm.db2.jdbc.net.DB2Driver,純 Java,無需 Client,適合遠端部署。
  • 驅動封裝於 db2java.zip (或 db2jcc.jar 新版),位於 DB2 安裝目錄 java/ 或 JDK lib/ 下。

連線字串格式

類型格式範例
本地 (Type 2)jdbc:db2:<資料庫別名>jdbc:db2:rdb (資料庫需在預設實例)
遠端 (Type 4)jdbc:db2://<主機>:<埠>/<資料庫>jdbc:db2://192.168.1.10:50000/rdb

註:DB2 預設監聽埠為 50000,可透過 db2 get dbm cfg | grep SVCENAME 確認。

Java 應用程式連線範本

// 1. 註冊驅動 (二擇一)
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();   // Type 2
// Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance(); // Type 4

// 2. 取得連線
Connection con = DriverManager.getConnection(url, user, password);

// 3. 執行 SQL ...
// 4. 關閉資源
con.close();

JSP + Tomcat 整合部署

  1. 將 db2java.zip 更名為 db2java.jar,複製至 $CATALINA_HOME/common/lib/ (Tomcat 5/6) 或 lib/ (Tomcat 7+)。
  2. 重新啟動 Tomcat,驅動自動被系統類載入器掃描註冊。
  3. JSP 頁面直接使用上述 DriverManager.getConnection() 取得連線。

替代註冊方式 (程式碼內):

DriverManager.registerDriver(new COM.ibm.db2.jdbc.app.DB2Driver());
// 或
DriverManager.registerDriver(new COM.ibm.db2.jdbc.net.DB2Driver());

效能與架構建議

  • 避免 JSP 直連資料庫:實測 JSP 直連極慢,且連線管理混亂。最佳實踐:Servlet 處理資料邏輯並回傳 JavaBean/DTO,JSP 僅負責渲染。
  • 連線池:生產環境必須配置 DataSource (Tomcat context.xml + JNDI) 或獨立連線池 (HikariCP, DBCP2),禁止逐請求建立連線。
  • 參數化查詢:一律使用 PreparedStatement 防 SQL 注入並利用計畫快取。
  • DB2 參數調優:連線緩慢/自動斷開常因資料庫配置 (如 MAXAPPLS, MAXAGENTS, IDLE_TIMEOUT) 不當,需 DBA 協助調整。

常見錯誤速查

錯誤原因解決
ClassNotFoundException: COM.ibm.db2.jdbc.app.DB2Driverdb2java.jar 未在 Classpath確認 jar 放置位置與 Tomcat 重啟
SQL30081N: Communication error主機/埠/防火牆/實例未啟動驗證 DB2 監聽埠、防火牆、db2start
License file not foundType 2 驅動需授權檔安裝 DB2 Client 或改用 Type 4 驅動

掌握驅動選型、連線字串、部署架構三要素,即能構建穩定高效的 Java-DB2 應用系統。

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