JDBC 驅動程式類型總覽
JDBC API 定義了四種驅動架構,依部署層級與效能由低到高分類:
Type 1: JDBC-ODBC Bridge (橋接器)
- 架構:JDBC → ODBC Driver → DBMS Client Lib → DBMS。
- 特點:需客戶端安裝 ODBC Driver 及 DBMS Client。適用企業內部網路、三層架構中介層 (App Server 端)。
- 缺點:效能損耗大、部署複雜、非純 Java。已淘汰 (JDK 8 移除)。
Type 2: Native-API Partly Java (原生 API)
- 架構:JDBC → Native Library (JNI) → DBMS Client Lib → DBMS。
- 特點:將 JDBC 呼叫轉為特定 DBMS 原生呼叫 (Oracle OCI, Sybase CT-Lib 等)。仍需客戶端安裝 Native Library。
- 適用:早期內部系統、需特定 DBMS 優化功能場景。
Type 3: Net-Protocol Pure Java (網路協定純 Java)
- 架構:JDBC (Client) → Middleware Server (Application Server) → DBMS。
- 特點:Client 純 Java,透過中介軟體轉換為 DBMS 協定。中介層可連接多種異構資料庫,彈性最高。
- 優勢:支援 Internet/防火牆穿透、集中管理連線池、安全性控制。主流商業產品 (如 DataDirect SequeLink) 多屬此類。
Type 4: Native-Protocol Pure Java (原生協定純 Java)
- 架構:JDBC (Client) → DBMS (Direct Socket 通訊)。
- 特點:驅動程式直接實作 DBMS 專有網路協定 (如 Oracle Thin, MySQL Connector/J, SQL Server JDBC Driver, PostgreSQL JDBC)。
- 優勢:效能最佳、部署最簡單 (單一 JAR)、無中介層單點故障、支援自動下載 (Applet/WebStart)。現代開發首選。
選型建議
| 場景 | 推薦類型 | 理由 |
| 現代雲原生 / 微服務 / 容器化部署 | Type 4 | 零依賴、啟動快、映像檔小、效能最優 |
| 需整合多種舊版異構資料庫、集中連線管理 | Type 3 | 中介層屏蔽差異、統一安全與監控 |
| 舊系統維護、特定 DBMS 非標準功能依賴 | Type 2 | 相容既有 Native Library 投資 |
| 教學示範 / 極舊環境 | Type 1 | 僅供理解歷史演進,勿用於生產 |
主流資料庫廠商 (Oracle, Microsoft, MySQL, PostgreSQL, IBM) 目前皆以 Type 4 為主力維護方向。