From Gossip@Openhome

Java Gossip: 簡介 JDBC

JDBC是用於執行SQL的Java API,它將資料庫存取的API與SQL陳述分開,實現資料庫無關的API介面,藉由JDBC統一的介面,開發人員只要專注於SQL陳述,而可以不必理會底層的資料庫驅動程式與相關介面。

使用JDBC,由廠商實作資料庫的介面,而SQL的操作部份由Java程式設計人員負責,如果要更換驅動程式,則只要載入新的驅動程式來源即可,Java 程式的部份則無需改變。

簡單的說,JDBC讓Java程式設計人員在撰寫資料庫程式的時候,可以「寫一個程式,適用所有的資料庫」。

下圖JDBC API、資料庫驅動程式與資料庫之間的關係:
JDBC

JDBC資料庫驅動程式依實作方式可以分為四個類型:
  • Type 1:JDBC-ODBC Bridge
使用者的電腦上必須事先安裝好ODBC驅動程式,Type 1驅動程式利用Bridge的方式將JDBC的呼叫方式轉換為ODBC的呼叫方式,用於Microsoft Access之類的資料庫存取:

Application <--> JDBC-ODBC Bridge <--> ODBC Driver <--> Database
  • Type 2:Native-API Bridge
驅動程式上層包裝Java程式以與Java應用程式作溝通,將JDBC呼叫轉為原生程式碼的呼叫,下層為原生語 言(像是C、C++)來與資料庫作溝通,下層的函式庫是針對特定資料庫設計的,不若Type 1可以對ODBC架構的資料庫作存取:

 Application <--> Native-API Bridge <--> Native API <--> Database
  • Type 3:JDBC-Net
透過中介的伺服器或中間件來存取資料庫,客戶端驅動程式以特定於伺服器或中間件的網路協定,與伺服器或中間件進行溝通,而由中介伺服器或中間件來完成所有的資料 庫存取動作,然後將結果傳回給驅動程式:

Application <--> JDBC-Net <--> middleware 或 server <--> Database
  • Type 4:Native-Protocol
直接以資料庫的網路協定與資料庫作溝通,而不透過橋接、中介伺服器或中間件來存取資料庫:

Application <--> Native-Protocol <--> Database

Type 3與Type 4可以使用純Java撰寫,
跨平台時是較建議採用的驅動程式。

MySQL的JDBC驅動程式屬於Type 4,稱之為Connector/J,目前有支援JDBC 2.0與JDBC 3.0的版本,您可以在以下的網站取得:
http://www.mysql.com/products/connector-j/index.html