【Java學習】JDBC能夠再深一點理解

JDBC驅動程序

JDBC驅動程序是JDBC API中實現定義的接口。
JDBC是java語言中的與數據庫鏈接的接口。
也就是說JDBC是Java API,使得Java能夠與數據庫進行鏈接,而JDBC驅動程序是JDBC API,驅動JDBC進一步與數據庫進行交互。html

例如:使用JDBC驅動程序,能夠發送SQL或者數據庫命令,而後就能夠打開數據庫鏈接並與數據庫進行交互。java

JDBC驅動的類型

Sun公司講實現類型分爲四種,1,2,3,和4類型。linux

類型1: JDBC-ODBC橋驅動程序

【知識點】ODBC

什麼是ODBC?sql

它是Open Database Connection,中文解釋爲開放數據鏈接。百度百科上面說它爲解決異構數據庫間的數據共享而產生的,這很難理解。
首先咱們如今有不少中數據庫系統,如Oracle的Mysql,Sql Server等等,同時不一樣模型的數據庫還有一大堆,拋去關係型數據庫還有層次型、網絡型、面向對象型...還有他們運行的操做系統也有不一樣,有的運行在linux上,有的呢又運行在windows上,固然也不必定安裝在計算機中,能夠安裝在各類設備中,如:大型機、小型機、嵌入式系統中。那麼這些不一樣的數據庫系統的集合就能夠稱爲異構數據庫!!那麼有沒有互聯的需求嗎?答案是必定的,他們須要共享數據!數據庫

當今世界,人們對數據的需求愈來愈普遍。一個部門裏咱們能夠統一標準,必須在PC上使用Mysql!可是不一樣部門與不一樣部門之間一樣須要數據共享。因此數據庫互聯成爲了一個很頭疼的問題。windows

ODBC就是爲了解決這一問題的。在操做系統中安裝ODBC,應用程序能夠用ODBC驅動來完成全部的數據庫操做。沒錯,全部的!服務器

大概瞭解這麼多也就足夠了。

回到類型一的驅動程序,JDBC橋接器用於訪問安裝在每臺客戶機上的ODBC驅動程序。而後經過ODBC能夠進行數據庫的交互。網絡

clipboard.png
但如今不推薦使用這種類型的驅動程序。yii

JDK1.2附帶的JDBC-ODBC橋接就是這種驅動程序。測試

類型2:JDBC本地API

在此類型中,JDBC API調用將轉換爲本地C/C++ API調用。這些驅動程序一般由數據庫提供商提供。必須在每一個客戶機上安裝供應商特定的驅動程序。

clipboard.png
這個和類型1使用方式是相同的,可是他須要特定於數據庫,可是有點也顯而易見,它可以自行擴展,消除了ODBC開銷(看圖,再也不須要ODBC提供服務了)。

Oracle調用接口(OCI)驅動程序就是此類型的示例。

類型3:JDBC-Net純Java

這一類型使用三層方法訪問數據庫。JDBC客戶端使用標準網絡套接字與中間件應用程序服務器進行通訊。套接字信息隨後由中間件應用服務器轉換爲DBMS所需的調用格式,並轉發到數據庫服務器。

因而可知此驅動很令或,不須要在哭胡段上面安裝代碼,一個驅動程序實際上能夠提供多個數據庫的訪問。

clipboard.png

能夠將在應用程序服務器視爲JDBC「代理」,他會調用客戶端應用程序。

應用程序服務器會使用類型1,2或4與數據庫通訊。

類型4 :100%純java

基於純Java的驅動程序一樣經過套接字鏈接與供應商的數據庫直接通訊。可是不一樣的是,這一般由供應商本身提供。

優勢是一樣靈活。還有這些驅動因爲是數據庫供應商提供的,因此還能夠動態的下載。

clipboard.png

MysqlConnector/J驅動程序是類型4驅動程序。

該使用哪一個類型的驅動程序?

若是您正在訪問一種類型的數據庫,例如Oracle,Sybase或IBM DB2,則首選驅動程序類型爲類型4。

若是Java應用程序同時訪問多種類型的數據庫,則類型3是首選驅動程序。

類型2驅動程序在數據庫不可用的類型3或類型4驅動程序的狀況下使用。

類型1驅動程序不被視爲部署級驅動程序,一般僅用於開發和測試目的。

參考資料

易百教程百度百科

相關文章
相關標籤/搜索