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