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