JDBC驅動程序
JDBC驅動程序是JDBC API中實現定義的接口。
JDBC是java語言中的與數據庫連接的接口。
也就是說JDBC是Java API,使得Java可以與數據庫進行連接,而JDBC驅動程序是JDBC API,驅動JDBC進一步與數據庫進行交互。
例如:使用JDBC驅動程序,可以發送SQL或者數據庫命令,然后就可以打開數據庫連接并與數據庫進行交互。
JDBC驅動的類型
Sun公司講實現類型分為四種,1,2,3,和4類型。
類型1: JDBC-ODBC橋驅動程序
【知識點】ODBC
什么是ODBC?
它是Open Database Connection,中文解釋為開放數據連接。百度百科上面說它為解決異構數據庫間的數據共享而產生的,這很難理解。
首先我們現在有很多中數據庫系統,如Oracle的Mysql,Sql Server等等,同時不同模型的數據庫還有一大堆,拋去關系型數據庫還有層次型、網絡型、面向對象型...還有他們運行的操作系統也有不同,有的運行在linux上,有的呢又運行在windows上,當然也不一定安裝在計算機中,可以安裝在各種設備中,如:大型機、小型機、嵌入式系統中。那么這些不同的數據庫系統的集合就可以稱為異構數據庫!!那么有沒有互聯的需求嗎?答案是一定的,他們需要共享數據!
當今世界,人們對數據的需求越來越廣泛。一個部門里我們可以統一標準,必須在PC上使用Mysql!但是不同部門與不同部門之間同樣需要數據共享。所以數據庫互聯成為了一個很頭疼的問題。
ODBC就是為了解決這一問題的。在操作系統中安裝ODBC,應用程序可以用ODBC驅動來完成所有的數據庫操作。沒錯,所有的!
大概了解這么多也就足夠了。
回到類型一的驅動程序,JDBC橋接器用于訪問安裝在每臺客戶機上的ODBC驅動程序。然后通過ODBC可以進行數據庫的交互。
但現在不推薦使用這種類型的驅動程序。
JDK1.2附帶的JDBC-ODBC橋接就是這種驅動程序。
類型2:JDBC本地API
在此類型中,JDBC API調用將轉換為本地C/C++ API調用。這些驅動程序通常由數據庫提供商提供。必須在每個客戶機上安裝供應商特定的驅動程序。
這個和類型1使用方式是相同的,但是他需要特定于數據庫,但是有點也顯而易見,它能夠自行擴展,消除了ODBC開銷(看圖,不再需要ODBC提供服務了)。
Oracle調用接口(OCI)驅動程序就是此類型的示例。
類型3:JDBC-Net純Java
這一類型使用三層方法訪問數據庫。JDBC客戶端使用標準網絡套接字與中間件應用程序服務器進行通信。套接字信息隨后由中間件應用服務器轉換為DBMS所需的調用格式,并轉發到數據庫服務器。
由此可見此驅動很令或,不需要在哭胡段上面安裝代碼,一個驅動程序實際上可以提供多個數據庫的訪問。
可以將在應用程序服務器視為JDBC“代理”,他會調用客戶端應用程序。
應用程序服務器會使用類型1,2或4與數據庫通信。
類型4 :100%純java
基于純Java的驅動程序同樣通過套接字連接與供應商的數據庫直接通信。但是不同的是,這通常由供應商自己提供。
優點是同樣靈活。還有這些驅動由于是數據庫供應商提供的,所以還可以動態的下載。
MysqlConnector/J
驅動程序是類型4驅動程序。
該使用哪個類型的驅動程序?
如果您正在訪問一種類型的數據庫,例如Oracle,Sybase或IBM DB2,則首選驅動程序類型為類型4。
如果Java應用程序同時訪問多種類型的數據庫,則類型3是首選驅動程序。
類型2驅動程序在數據庫不可用的類型3或類型4驅動程序的情況下使用。
類型1驅動程序不被視為部署級驅動程序,通常僅用于開發和測試目的。
參考資料
易百教程
百度百科