JDBC驅動程序類型

JDBC驅動程序是什麼?

JDBC驅動程序在JDBC API中實現定義的接口,用於與數據庫服務器進行交互。

例如,使用JDBC驅動程序,可以通過發送SQL或數據庫命令,然後使用Java接收結果來打開數據庫連接並與數據庫進行交互。

JDK附帶的Java.sql包包含各種類,其類的行爲被定義,實現在第三方驅動程序中完成。 第三方供應商在其數據庫驅動程序中實現java.sql.Driver接口。

JDBC驅動程序類型

JDBC驅動程序實現因Java運行的各種操作系統和硬件平臺而異。 Sun將實現類型分爲四種類型,分別爲1,2,34類型,如下所述:

類型1:JDBC-ODBC橋驅動程序

類型1驅動程序中,JDBC橋接器用於訪問安裝在每臺客戶機上的ODBC驅動程序。 使用ODBC需要在系統上配置表示目標數據庫的數據源名稱(DSN)。

當Java第一次出現時,這是一個驅動程序,因爲大多數數據庫僅支持ODBC訪問,但現在這種類型的驅動程序僅推薦用於實驗性使用或沒有其他替代方案時使用。

JDBC驅動程序類型

JDK 1.2附帶的JDBC-ODBC橋接是這種驅動程序的一個很好的例子。

類型2:JDBC本地API

類型2驅動程序中,JDBC API調用將轉換爲本地C/C++ API調用,這是數據庫唯一的。 這些驅動程序通常由數據庫供應商提供,並以與JDBC-ODBC橋接相同的方式使用。 必須在每個客戶機上安裝供應商特定的驅動程序。

如果要更改數據庫,則必須更改原生API,因爲它特定於數據庫,並且現在大部分已經過時,但是使用類型2驅動程序實現了一些擴展功能的開發,它消除了ODBC的開銷。

JDBC驅動程序類型

Oracle調用接口(OCI)驅動程序是類型2驅動程序的示例。

類型3:JDBC-Net純Java

類型3驅動程序中,使用三層方法訪問數據庫。 JDBC客戶端使用標準網絡套接字與中間件應用程序服務器進行通信。 套接字信息隨後由中間件應用服務器轉換成DBMS所需的調用格式,並轉發到數據庫服務器。

這種驅動程序是非常靈活的,因爲它不需要在客戶端上安裝代碼,一個驅動程序實際上可以提供多個數據庫的訪問。

JDBC驅動程序類型

可以將應用程序服務器視爲JDBC「代理」,它會調用客戶端應用程序。 因此,我們需要了解應用程序服務器的配置,纔能有效地使用此驅動程序類型。

應用程序服務器可能會使用類型1,2或4驅動程序與數據庫通信,瞭解細微差別對理解JDBC是有幫助的。

類型4:100%純Java

類型4驅動程序中,基於純Java的驅動程序通過套接字連接與供應商的數據庫直接通信。 這是數據庫可用的最高性能驅動程序,通常由供應商自己提供。

這種驅動是非常靈活的,不需要在客戶端或服務器上安裝特殊的軟件。 此外,這些驅動程序可以動態下載。

JDBC驅動程序類型

MySQL Connector/J驅動程序是類型4驅動程序。 由於其網絡協議的專有性質,數據庫供應商通常提供類型4驅動程序。

應該使用哪個驅動程序?

如果您正在訪問一種類型的數據庫,例如Oracle,Sybase或IBM DB2,則首選驅動程序類型爲類型4

如果Java應用程序同時訪問多種類型的數據庫,則類型3是首選驅動程序。

類型2驅動程序在數據庫不可用的類型3類型4驅動程序的情況下使用。

類型1驅動程序不被視爲部署級驅動程序,通常僅用於開發和測試目的。