JDBC驅動程式在JDBC API中實現定義的介面,用於與資料庫伺服器進行互動。
例如,使用JDBC驅動程式,可以通過傳送SQL或資料庫命令,然後使用Java接收結果來開啟資料庫連線並與資料庫進行互動。
JDK附帶的Java.sql
包包含各種類,其類的行為被定義,實現在第三方驅動程式中完成。 第三方供應商在其資料庫驅動程式中實現java.sql.Driver
介面。
JDBC驅動程式實現因Java執行的各種作業系統和硬體平台而異。 Sun將實現型別分為四種型別,分別為1
,2
,3
和4
型別,如下所述:
在型別1驅動程式中,JDBC橋接器用於存取安裝在每台客戶機上的ODBC驅動程式。 使用ODBC需要在系統上組態表示目標資料庫的資料源名稱(DSN)。
當Java第一次出現時,這是一個驅動程式,因為大多數資料庫僅支援ODBC存取,但現在這種型別的驅動程式僅推薦用於實驗性使用或沒有其他替代方案時使用。
JDK 1.2附帶的JDBC-ODBC橋接是這種驅動程式的一個很好的例子。
在型別2驅動程式中,JDBC API呼叫將轉換為本地C/C++ API呼叫,這是資料庫唯一的。 這些驅動程式通常由資料庫供應商提供,並以與JDBC-ODBC橋接相同的方式使用。 必須在每個客戶機上安裝供應商特定的驅動程式。
如果要更改資料庫,則必須更改原生API,因為它特定於資料庫,並且現在大部分已經過時,但是使用型別2驅動程式實現了一些擴充套件功能的開發,它消除了ODBC的開銷。
Oracle呼叫介面(OCI)驅動程式是型別2驅動程式的範例。
在型別3驅動程式中,使用三層方法存取資料庫。 JDBC用戶端使用標準網路通訊端與中介軟體應用程式伺服器進行通訊。 通訊端資訊隨後由中介軟體應用伺服器轉換成DBMS所需的呼叫格式,並轉發到資料庫伺服器。
這種驅動程式是非常靈活的,因為它不需要在用戶端上安裝程式碼,一個驅動程式實際上可以提供多個資料庫的存取。
可以將應用程式伺服器視為JDBC「代理」,它會呼叫用戶端應用程式。 因此,我們需要了解應用程式伺服器的組態,才能有效地使用此驅動程式型別。
應用程式伺服器可能會使用型別1,2或4驅動程式與資料庫通訊,了解細微差別對理解JDBC是有幫助的。
在型別4驅動程式中,基於純Java的驅動程式通過通訊端連線與供應商的資料庫直接通訊。 這是資料庫可用的最高效能驅動程式,通常由供應商自己提供。
這種驅動是非常靈活的,不需要在用戶端或伺服器上安裝特殊的軟體。 此外,這些驅動程式可以動態下載。
MySQL Connector/J
驅動程式是型別4驅動程式。 由於其網路協定的專有性質,資料庫供應商通常提供型別4驅動程式。
如果您正在存取一種型別的資料庫,例如Oracle,Sybase或IBM DB2,則首選驅動程式型別為型別4。
如果Java應用程式同時存取多種型別的資料庫,則型別3是首選驅動程式。
型別2驅動程式在資料庫不可用的型別3或型別4驅動程式的情況下使用。
型別1驅動程式不被視為部署級驅動程式,通常僅用於開發和測試目的。