【Java学习】JDBC可以再深一点理解
JDBC驅(qū)動程序
JDBC驅(qū)動程序是JDBC API中實(shí)現(xiàn)定義的接口。
JDBC是java語言中的與數(shù)據(jù)庫連接的接口。
也就是說JDBC是Java API,使得Java可以與數(shù)據(jù)庫進(jìn)行連接,而JDBC驅(qū)動程序是JDBC API,驅(qū)動JDBC進(jìn)一步與數(shù)據(jù)庫進(jìn)行交互。
例如:使用JDBC驅(qū)動程序,可以發(fā)送SQL或者數(shù)據(jù)庫命令,然后就可以打開數(shù)據(jù)庫連接并與數(shù)據(jù)庫進(jìn)行交互。
JDBC驅(qū)動的類型
Sun公司講實(shí)現(xiàn)類型分為四種,1,2,3,和4類型。
類型1: JDBC-ODBC橋驅(qū)動程序
【知識點(diǎn)】ODBC什么是ODBC?
它是Open Database Connection,中文解釋為開放數(shù)據(jù)連接。百度百科上面說它為解決異構(gòu)數(shù)據(jù)庫間的數(shù)據(jù)共享而產(chǎn)生的,這很難理解。
首先我們現(xiàn)在有很多中數(shù)據(jù)庫系統(tǒng),如Oracle的Mysql,Sql Server等等,同時不同模型的數(shù)據(jù)庫還有一大堆,拋去關(guān)系型數(shù)據(jù)庫還有層次型、網(wǎng)絡(luò)型、面向?qū)ο笮?..還有他們運(yùn)行的操作系統(tǒng)也有不同,有的運(yùn)行在linux上,有的呢又運(yùn)行在windows上,當(dāng)然也不一定安裝在計(jì)算機(jī)中,可以安裝在各種設(shè)備中,如:大型機(jī)、小型機(jī)、嵌入式系統(tǒng)中。那么這些不同的數(shù)據(jù)庫系統(tǒng)的集合就可以稱為異構(gòu)數(shù)據(jù)庫!!那么有沒有互聯(lián)的需求嗎?答案是一定的,他們需要共享數(shù)據(jù)!
當(dāng)今世界,人們對數(shù)據(jù)的需求越來越廣泛。一個部門里我們可以統(tǒng)一標(biāo)準(zhǔn),必須在PC上使用Mysql!但是不同部門與不同部門之間同樣需要數(shù)據(jù)共享。所以數(shù)據(jù)庫互聯(lián)成為了一個很頭疼的問題。
ODBC就是為了解決這一問題的。在操作系統(tǒng)中安裝ODBC,應(yīng)用程序可以用ODBC驅(qū)動來完成所有的數(shù)據(jù)庫操作。沒錯,所有的!
大概了解這么多也就足夠了。
回到類型一的驅(qū)動程序,JDBC橋接器用于訪問安裝在每臺客戶機(jī)上的ODBC驅(qū)動程序。然后通過ODBC可以進(jìn)行數(shù)據(jù)庫的交互。
但現(xiàn)在不推薦使用這種類型的驅(qū)動程序。
JDK1.2附帶的JDBC-ODBC橋接就是這種驅(qū)動程序。
類型2:JDBC本地API
在此類型中,JDBC API調(diào)用將轉(zhuǎn)換為本地C/C++ API調(diào)用。這些驅(qū)動程序通常由數(shù)據(jù)庫提供商提供。必須在每個客戶機(jī)上安裝供應(yīng)商特定的驅(qū)動程序。
這個和類型1使用方式是相同的,但是他需要特定于數(shù)據(jù)庫,但是有點(diǎn)也顯而易見,它能夠自行擴(kuò)展,消除了ODBC開銷(看圖,不再需要ODBC提供服務(wù)了)。
Oracle調(diào)用接口(OCI)驅(qū)動程序就是此類型的示例。
類型3:JDBC-Net純Java
這一類型使用三層方法訪問數(shù)據(jù)庫。JDBC客戶端使用標(biāo)準(zhǔn)網(wǎng)絡(luò)套接字與中間件應(yīng)用程序服務(wù)器進(jìn)行通信。套接字信息隨后由中間件應(yīng)用服務(wù)器轉(zhuǎn)換為DBMS所需的調(diào)用格式,并轉(zhuǎn)發(fā)到數(shù)據(jù)庫服務(wù)器。
由此可見此驅(qū)動很令或,不需要在哭胡段上面安裝代碼,一個驅(qū)動程序?qū)嶋H上可以提供多個數(shù)據(jù)庫的訪問。
可以將在應(yīng)用程序服務(wù)器視為JDBC“代理”,他會調(diào)用客戶端應(yīng)用程序。
應(yīng)用程序服務(wù)器會使用類型1,2或4與數(shù)據(jù)庫通信。
類型4 :100%純java
基于純Java的驅(qū)動程序同樣通過套接字連接與供應(yīng)商的數(shù)據(jù)庫直接通信。但是不同的是,這通常由供應(yīng)商自己提供。
優(yōu)點(diǎn)是同樣靈活。還有這些驅(qū)動由于是數(shù)據(jù)庫供應(yīng)商提供的,所以還可以動態(tài)的下載。
MysqlConnector/J驅(qū)動程序是類型4驅(qū)動程序。
該使用哪個類型的驅(qū)動程序?
如果您正在訪問一種類型的數(shù)據(jù)庫,例如Oracle,Sybase或IBM DB2,則首選驅(qū)動程序類型為類型4。
如果Java應(yīng)用程序同時訪問多種類型的數(shù)據(jù)庫,則類型3是首選驅(qū)動程序。
類型2驅(qū)動程序在數(shù)據(jù)庫不可用的類型3或類型4驅(qū)動程序的情況下使用。
類型1驅(qū)動程序不被視為部署級驅(qū)動程序,通常僅用于開發(fā)和測試目的。
參考資料
易百教程
百度百科
總結(jié)
以上是生活随笔為你收集整理的【Java学习】JDBC可以再深一点理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux python2.7 链接my
- 下一篇: 婚礼答谢宴ppt模板_女儿结婚请柬制作