依 JDBC 規範,驅動程式分為四類,核心差異在於實作語言與通訊路徑:
| 類型 | 實作方式 | 通訊路徑 | 代表例 | 優/缺點 |
|---|---|---|---|---|
| Type 1 | 映射既有資料存取 API(如 ODBC) | Java → JNI → ODBC → DB | JDBC-ODBC Bridge | 依賴本地庫,跨平台差,已淘汰 |
| Type 2 | 部分 Java、部分本地代碼 | Java → JNI → DB Client Lib → DB | Oracle OCI、DB2 CLI | 需安裝 Client,依賴本地庫,部署繁瑣 |
| Type 3 | 純 Java | Java → Middleware Server(通用協議) → DB | IDA Server、DataDirect SequeLink | 中介層單點故障、延遲較高 |
| Type 4 | 純 Java | Java → DB 原生網路協議(直連) | DB2 JCC、Oracle Thin、MySQL Connector/J | 無本地依賴、跨平台、部署最簡、現代首選 |
COM.ibm.db2.jdbc.app.DB2Driver(需安裝 DB2 Client,通過 CLI/CAPI 通訊)。com.ibm.db2.jcc.DB2Driver(JCC Universal Driver,純 Java,直連 DB2 伺服器 50000 端口,支援 XA、DataSource、連線池)。// Type 4 標準格式
jdbc:db2://host:port/dbname:user=uid;password=pwd;
// 連線池屬性(HikariCP/Druid 等)
dataSource.setDriverClassName("com.ibm.db2.jcc.DB2Driver");
dataSource.setJdbcUrl("jdbc:db2://192.168.1.100:50000/MYDB");
dataSource.setUsername("db2inst1");
dataSource.setPassword("******");
理解四類驅動架構差異,能幫助架構師做出正確技術選型。現代雲原生、微服務、容器化部署場景下,Type 4 純 Java 原生協議驅動是唯一理性選擇。