JDBC驅動類型
什麼是JDBC驅動程序?
JDBC驅動程序實現JDBC API中定義的接口,用於與數據庫服務器進行交互。
例如,使用JDBC驅動程序可以打開數據庫連接,並通過發送SQL或數據庫命令,然後在收到結果與Java進行交互。
java.sql包中附帶的JDK包含定義各種類與他們的行為和實際實現在第三方驅動程序。第三方供應商實現了他們的數據庫驅動程序的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-Native API調用:
在類型2驅動程序,JDBC API調用轉換成原生的C / C+ + API調用都有它獨特的數據庫。這些通常由數據庫廠商提供,並以相同的方式將JDBC-ODBC橋驅動程序使用,特定供應商的驅動程序必須安裝在每台客戶機上。
如果改變了數據庫,那麼必須改變本機API,因為它是具體到一個數據庫,他們大多是過時了,但現在可以實現一些速度增加了類型2驅動程序,因為它消除了數據庫的開銷。
Oracle調用接口(OCI)驅動程序是一個類型2驅動程序的一個示例。
類型3:JDBC網絡純Java:
在類型3驅動程序,一個三層的方法來訪問數據庫。在JDBC客戶端使用標準的網絡套接字與中間件應用服務器進行通信。套接字的相關信息,然後由中間件應用服務器進入由DBMS所需要的的調用格式轉換,並轉發到數據庫服務器。
這種驅動器是非常靈活的,因為它不需要安裝在客戶端上的代碼和一個單一的驅動器實際上可以提供訪問多個數據庫。
可以將應用服務器作為一個JDBC“代理”,這意味著它會調用客戶端應用程序。因此,需要應用服務器的配置,以有效地使用此驅動程序類型的一些知識。
應用服務器可能使用類型1,2,或4驅動程序與數據庫進行通信,了解細微之處將證明是有益的。
類型4:100%純Java:
在一個類型4驅動程序,直接與供應商的數據庫進行通信,通過socket連接一個純粹的基於Java的驅動程序。這是可用於數據庫的最高性能的驅動程序,並且通常由供應商本身提供。
這種驅動器是非常靈活的,不需要在客戶端或服務器上安裝特殊的軟件。此外,這些驅動程序可以動態下載。
MySQL的Connector/J的驅動程序是一個類型4驅動程序。因為他們的網絡協議的專有性的,數據庫廠商通常提供類型4的驅動程序。
其中驅動器應使用?
如果正在訪問一個類型的數據庫,如Oracle,Sybase或IBM,首選驅動程序是類型4。
如果Java應用程序同時訪問多個數據庫類型,類型3是首選的驅動程序。
第2類驅動程序是在情況下:類型3或類型4驅動程序還冇有提供數據庫非常有用。
類型1驅動程序不被認為是部署級彆的驅動程序,它通常僅用於開發和測試目的。