| 類型 | 架構 | 特點 |
|---|---|---|
| Type 1 | JDBC-ODBC Bridge | 已棄用 (Java 8 移除),需 ODBC 驅動,雙重轉換效能差 |
| Type 2 | Native API | Java -> JNI -> DB Client Lib -> 網路 -> DB Server |
| Type 3 | Net-Protocol (Middleware) | Java -> 網路 -> Middleware Server -> DB Client Lib -> DB Server |
| Type 4 | Pure Java (Thin Driver) | Java -> 網路 -> DB Server (直接實現 DB 協議),無客戶端庫依賴 |
注意:IBM 從未提供 Type 1 驅動。以下為 DB2 實際支援的三類:
COM.ibm.db2.jdbc.app.DB2Driver (舊包 db2java.zip)db2jdbc.dll (Windows) / libdb2j.so (Unix),再經 DB2 客戶端通訊層連接伺服器。db2dsdriver.cfg 或目錄節點/資料庫別名。jdbc:db2:<database_alias> (如 jdbc:db2:sample)。COM.ibm.db2.jdbc.net.DB2Driver (舊包 db2java.zip)db2jstrt 服務監聽埠;客戶端無需 DB2 Client。jdbc:db2://<host>:6789/<database> (如 jdbc:db2://dbserver:6789/SAMPLE)。com.ibm.db2.jcc.DB2Driver (包 db2jcc.jar / db2jcc4.jar)jdbc:db2://<host>:50000/<database> (如 jdbc:db2://dbserver:50000/SAMPLE)。CODESET UTF-8 TERRITORY US,否則中文亂碼風險極高。
Class.forName(DRIVER_CLASS).newInstance();
Connection conn = DriverManager.getConnection(URL, USER, PASS);
// ... 業務邏輯
conn.close();
db2jcc.jar vs db2jcc4.jar:JDK 1.4/1.5 用前者,JDK 6+ **必須用 db2jcc4.jar** (JDBC 4.0 SPI 自動註冊,無需 Class.forName)。db2jcc_license_cu.jar (連接 z/OS、iSeries) 或 db2jcc_license_cisuz.jar (全平台) 必須同目錄/classpath,否則拋 SQLCODE=-4229。driverClassName 可省略 (JDBC 4.0+ 自動發現)。