JDBC 資料庫驅動程式依實作方式可以分為四種類型。這些類型基於驅動程式如何將 JDBC 調用轉換為數據庫的本地調用。每種類型都有其特點和使用場景。
JDBC 驅動程式類型
Type 1:JDBC-ODBC 橋接驅動程式 (JDBC-ODBC Bridge Driver)
描述:這種類型的驅動程式使用 ODBC 驅動程式來訪問數據庫。它首先將 JDBC 調用轉換為 ODBC 調用,然後再由 ODBC 驅動程式處理這些調用。
優點:能夠訪問各種支持 ODBC 的數據庫。
缺點:性能較低,因為需要兩層轉換(JDBC 到 ODBC,再到數據庫)。不適合生產環境使用。
示例:Sun 的 JDBC-ODBC 橋接驅動程式。
Type 2:本地 API 驅動程式 (Native-API Driver)
描述:這種類型的驅動程式使用數據庫的本地 API(通常是 C/C++ 函數庫)來訪問數據庫。JDBC 調用被轉換為本地 API 調用。
優點:性能比 Type 1 驅動程式更好。
缺點:需要在客戶端安裝本地驅動程式庫,具有平臺依賴性,不是跨平臺的。
示例:Oracle 的 OCI 驅動程式。
Type 3:網絡協議驅動程式 (Network Protocol Driver)
描述:這種類型的驅動程式將 JDBC 調用轉換為一個中間層服務器的協議調用,該服務器再將請求轉發給數據庫。中間層服務器可以使用任何協議與數據庫進行通信。
優點:不需要在客戶端安裝本地驅動程式,具有良好的跨平臺性。
缺點:引入了額外的中間層,可能會影響性能。
示例:IBM 的 WebSphere、BEA 的 WebLogic。
Type 4:純 Java 驅動程式 (Thin Driver/Pure Java Driver)
描述:這種類型的驅動程式完全用 Java 實現,直接將 JDBC 調用轉換為數據庫協議的本地調用。它與數據庫直接通信,而不需要中間層或本地庫。
優點:性能最好,純 Java 實現,跨平臺,易於部署。
缺點:需要為每個數據庫提供單獨的驅動程式。
示例:MySQL 的 Connector/J、Oracle 的 Thin 驅動程式。
總結
Type 1 驅動程式:JDBC-ODBC 橋接驅動程式,性能較低,依賴 ODBC。
Type 2 驅動程式:本地 API 驅動程式,依賴本地庫,平臺依賴性高。
Type 3 驅動程式:網絡協議驅動程式,使用中間層服務器,跨平臺。
Type 4 驅動程式:純 Java 驅動程式,性能最好,純 Java 實現,跨平臺。
每種類型的 JDBC 驅動程式都有其特定的應用場景和優缺點,選擇合適的驅動程式取決於具體的應用需求和部署環境。