| 場景 | 建議方案 | 核心組件 |
|---|---|---|
| 獨立 Java 應用 | JDBC 直連 + 連線池 | HikariCP, db2jcc.jar, db2jcc_license_cu.jar |
| Web 應用 | JNDI DataSource (容器管理) | WAS/Tomcat/JBoss 內建連線池 |
| 高並發/分散式交易 | XA DataSource | com.ibm.db2.jcc.DB2XADataSource |
com.ibm.db2.jcc.DB2Driver (db2jcc.jar),單一 JAR 支援 Type 2 (本地) 與 Type 4 (網路) 兩種模式,需 db2jcc_license_cu.jar 授權。jdbc:db2://host:50000/db (純 Java、跨平台、推薦)jdbc:db2:db (需本地 DB2 Client、本地效能最佳、支援 XA)COM.ibm.db2.jdbc.app.DB2Driver (db2java.zip, Type 2)、COM.ibm.db2.jdbc.net.DB2Driver (Type 3, Applet Server) —— 新專案勿使用。管理主控台 → Environment → WebSphere Variables → DB2UNIVERSAL_JDBC_DRIVER_PATH = C:\Program Files\IBM\SQLLIB\java (驅動 JAR 所在目錄)。
Resources → JDBC → JDBC Providers → New
Database Type: DB2
Provider Type: DB2 Universal JDBC Driver Provider
Implementation Type: Connection pool data source
Classpath: ${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc.jar
Native library path: ${DB2UNIVERSAL_JDBC_DRIVER_PATH}
Resources → JDBC → Data Sources → New
Name: DB2DS | JNDI: jdbc/db2
選擇上述 JDBC Provider
Database name: SAMPLE | Driver type: 4
Server: 192.168.1.100 | Port: 50000
Data Source → Related Items → JAAS - J2C Authentication Data → New
Alias: DB2Auth | User: db2inst1 | Password: ****
回 Data Source → Component-managed authentication alias → 選 DB2Auth
勾選 Data Source → Test Connection → 成功顯示 "Successfully connected"。
@Resource(name="jdbc/db2") DataSource ds; // 注入式
// 或手動 JNDI Lookup
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/db2");
Connection conn = ds.getConnection();
DB2 通用驅動同步支援 SQLJ (嵌入式 SQL 標準),適用於靜態 SQL 多、需編譯期型別檢查的場景。sqlj 編譯器生成的 Profile 需 db2sqljcustomize 客製化後部署。