更新時(shí)間:2021-02-23 17:15:53 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1667次
JDBC驅(qū)動(dòng)程序?qū)嶋H上就是在JDBC API中實(shí)現(xiàn)定義的接口,用于與數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行交互。例如,使用JDBC驅(qū)動(dòng)程序,可以通過(guò)發(fā)送SQL或數(shù)據(jù)庫(kù)命令,然后使用Java接收結(jié)果來(lái)打開(kāi)數(shù)據(jù)庫(kù)連接并與數(shù)據(jù)庫(kù)進(jìn)行交互。JDK附帶的Java.sql包包含各種類,其類的行為被定義,實(shí)現(xiàn)在第三方驅(qū)動(dòng)程序中完成。 第三方供應(yīng)商在其數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序中實(shí)現(xiàn)java.sql.Driver接口。本文我們就來(lái)為大家介紹4種JDBC驅(qū)動(dòng)程序。
1、JDBC-ODBC橋
這種類型的驅(qū)動(dòng)把所有JDBC的調(diào)用傳遞給ODBC,再讓后者調(diào)用數(shù)據(jù)庫(kù)本地驅(qū)動(dòng)代碼(也就是數(shù)據(jù)庫(kù)廠商提供的數(shù)據(jù)庫(kù)操作二進(jìn)制代碼庫(kù),例如Oracle中的oci.dll)。
當(dāng)Java第一次出現(xiàn)時(shí),這是一個(gè)驅(qū)動(dòng)程序,因?yàn)榇蠖鄶?shù)數(shù)據(jù)庫(kù)僅支持ODBC訪問(wèn),但現(xiàn)在這種類型的驅(qū)動(dòng)程序僅推薦用于實(shí)驗(yàn)性使用或沒(méi)有其他替代方案時(shí)使用。
JDK 1.2附帶的JDBC-ODBC橋接是這種驅(qū)動(dòng)程序的一個(gè)很好的例子。
2、本地API驅(qū)動(dòng)
這種類型的驅(qū)動(dòng)通過(guò)客戶端加載數(shù)據(jù)庫(kù)廠商提供的本地代碼庫(kù)(C/C++等)來(lái)訪問(wèn)數(shù)據(jù)庫(kù),而在驅(qū)動(dòng)程序中則包含了Java代碼。這些驅(qū)動(dòng)程序通常由數(shù)據(jù)庫(kù)供應(yīng)商提供,并以與JDBC-ODBC橋接相同的方式使用。 必須在每個(gè)客戶機(jī)上安裝供應(yīng)商特定的驅(qū)動(dòng)程序。
如果要更改數(shù)據(jù)庫(kù),則必須更改原生API,因?yàn)樗囟ㄓ跀?shù)據(jù)庫(kù),并且現(xiàn)在大部分已經(jīng)過(guò)時(shí),但是使用該類型驅(qū)動(dòng)程序?qū)崿F(xiàn)了一些擴(kuò)展功能的開(kāi)發(fā),它消除了ODBC的開(kāi)銷。
Oracle調(diào)用接口(OCI)驅(qū)動(dòng)程序是該類型驅(qū)動(dòng)程序的示例。
3、網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng)
這種類型的驅(qū)動(dòng)給客戶端提供了一個(gè)網(wǎng)絡(luò)API,客戶端上的JDBC驅(qū)動(dòng)程序使用套接字(Socket)來(lái)調(diào)用服務(wù)器上的中間件程序,后者在將其請(qǐng)求轉(zhuǎn)化為所需的具體API調(diào)用。
在該驅(qū)動(dòng)程序中,使用三層方法訪問(wèn)數(shù)據(jù)庫(kù)。 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ù)庫(kù)服務(wù)器。
這種驅(qū)動(dòng)程序是非常靈活的,因?yàn)樗恍枰诳蛻舳松习惭b代碼,一個(gè)驅(qū)動(dòng)程序?qū)嶋H上可以提供多個(gè)數(shù)據(jù)庫(kù)的訪問(wèn)。
可以將應(yīng)用程序服務(wù)器視為JDBC“代理”,它會(huì)調(diào)用客戶端應(yīng)用程序。 因此,我們需要了解應(yīng)用程序服務(wù)器的配置,才能有效地使用此驅(qū)動(dòng)程序類型。
4、本地協(xié)議驅(qū)動(dòng)
這種類型的驅(qū)動(dòng)使用Socket,直接在客戶端和數(shù)據(jù)庫(kù)間通信。這是數(shù)據(jù)庫(kù)可用的最高性能驅(qū)動(dòng)程序,通常由供應(yīng)商自己提供。
這種驅(qū)動(dòng)是非常靈活的,不需要在客戶端或服務(wù)器上安裝特殊的軟件。 此外,這些驅(qū)動(dòng)程序可以動(dòng)態(tài)下載。
MySQL Connector/J驅(qū)動(dòng)程序是本地協(xié)議驅(qū)動(dòng)程序。由于其網(wǎng)絡(luò)協(xié)議的專有性質(zhì),數(shù)據(jù)庫(kù)供應(yīng)商通常提供該類型的驅(qū)動(dòng)程序。
以上就是4種JDBC驅(qū)動(dòng)程序,我們對(duì)每種驅(qū)動(dòng)程序都給出了實(shí)際的例子,我們?cè)趯?shí)際學(xué)習(xí)應(yīng)用的過(guò)程中也可以找到實(shí)際的例子來(lái)借鑒。在本站的JDBC教程中,對(duì)JDBC的驅(qū)動(dòng)程序有更加全面的介紹,幫助我們更加深入地了解JDBC的驅(qū)動(dòng)程序。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743