2.6_Database Interface JDBC及驱动类型
JAVA語(yǔ)言參考ODBC,設(shè)計(jì)專(zhuān)用的數(shù)據(jù)庫(kù)連接規(guī)范JDBC(JAVA Database Connectivity)。目標(biāo)是讓Java開(kāi)發(fā)人員在編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),可以有統(tǒng)一的接口,不依賴(lài)特定數(shù)據(jù)庫(kù)API,達(dá)到"一次開(kāi)發(fā),適用所有數(shù)據(jù)庫(kù)"。
JDBC標(biāo)準(zhǔn)中,把驅(qū)動(dòng)程序分為四種類(lèi)型:
Type1:JDBC-ODBC BridgeDriver(JDBC-ODBC橋)
SUN發(fā)布了JDBC-ODBC的橋連接驅(qū)動(dòng),利用現(xiàn)成的ODBC架構(gòu),將JDBC調(diào)用轉(zhuǎn)換為ODBC調(diào)用,再由ODBC調(diào)用本地?cái)?shù)據(jù)庫(kù)驅(qū)動(dòng)代碼(數(shù)據(jù)庫(kù)廠商提供的數(shù)據(jù)庫(kù)操作DLL。如oracle for windows中就是 oci dll文件),如下圖:
其特點(diǎn):不適合intranet/internet的應(yīng)用方面
Type 2:Native API Driver(本地API驅(qū)動(dòng))
這類(lèi)驅(qū)動(dòng)程序會(huì)直接調(diào)用數(shù)據(jù)庫(kù)提供的原生鏈接庫(kù)或客戶(hù)端,因?yàn)闆](méi)有中間過(guò)程,訪問(wèn)速度通常表現(xiàn)良好。
其特點(diǎn):需要在客戶(hù)端加載數(shù)據(jù)庫(kù)DLL,也不適合internet
Type 3: JDBC-Net Driver(網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng))
這類(lèi)驅(qū)動(dòng)程序?qū)DBC調(diào)用轉(zhuǎn)換為獨(dú)立于數(shù)據(jù)庫(kù)的協(xié)議,然后再通過(guò)特定的中間組件或服務(wù)器轉(zhuǎn)換為數(shù)據(jù)庫(kù)通信協(xié)議,主要目的是為了獲得更好的架構(gòu)靈活性。
例如更換數(shù)據(jù)庫(kù)時(shí)可通過(guò)更換中間組件實(shí)現(xiàn),JDBC領(lǐng)域這種類(lèi)型驅(qū)動(dòng)并不常見(jiàn),而微軟的ADO.NET是這種架構(gòu)的典型。如下圖:
其特點(diǎn):適合應(yīng)用程序需要同時(shí)連接多個(gè)不同類(lèi)的數(shù)據(jù)庫(kù),且要求并發(fā)連接高的。
Type4:Native Protocol Driver(本地協(xié)議驅(qū)動(dòng))
開(kāi)發(fā)中使用的驅(qū)動(dòng)jar包基本都屬于此類(lèi),通常由數(shù)據(jù)庫(kù)廠商直接提供,例如mysql-connector-java,驅(qū)動(dòng)程序把JDBC調(diào)用轉(zhuǎn)換為數(shù)據(jù)庫(kù)特定的網(wǎng)絡(luò)通信協(xié)議。如下圖:
上圖是最常見(jiàn)的驅(qū)動(dòng)程序類(lèi)型,其特點(diǎn):應(yīng)用程序可以直接和數(shù)據(jù)庫(kù)服務(wù)器通訊,執(zhí)行效率是非常高的。適合應(yīng)用程序連接單一數(shù)據(jù)庫(kù)場(chǎng)景。
?
轉(zhuǎn)載于:https://www.cnblogs.com/ximi07/p/11233919.html
總結(jié)
以上是生活随笔為你收集整理的2.6_Database Interface JDBC及驱动类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: openssl 模块 安装 centso
- 下一篇: LinkedHashMap