大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 一文了解JDBC驅(qū)動(dòng)程序

一文了解JDBC驅(qū)動(dòng)程序

更新時(shí)間:2021-10-25 11:23:12 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1407次

一個(gè)JDBC驅(qū)動(dòng)程序是一個(gè)軟件組件使得Java的應(yīng)用程序與互動(dòng)數(shù)據(jù)庫。JDBC 驅(qū)動(dòng)程序類似于ODBC 驅(qū)動(dòng)程序、ADO.NET 數(shù)據(jù)提供程序和OLE DB 提供程序。

一文了解JDBC驅(qū)動(dòng)程序

要連接單個(gè)數(shù)據(jù)庫,JDBC(Java 數(shù)據(jù)庫連接API)需要每個(gè)數(shù)據(jù)庫的驅(qū)動(dòng)程序。JDBC 驅(qū)動(dòng)程序發(fā)出與數(shù)據(jù)庫的連接,并實(shí)現(xiàn)在客戶端和數(shù)據(jù)庫之間傳輸查詢和結(jié)果的協(xié)議。

JDBC 技術(shù)驅(qū)動(dòng)程序?qū)儆谒念愔弧?/p>

JDBC-ODBC 橋接

本機(jī) API 驅(qū)動(dòng)程序

網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng)程序(中間件驅(qū)動(dòng)程序)

數(shù)據(jù)庫協(xié)議驅(qū)動(dòng)程序(純 Java 驅(qū)動(dòng)程序)或瘦驅(qū)動(dòng)程序。

類型 1 驅(qū)動(dòng)程序 – JDBC-ODBC 橋

JDBC 1 類驅(qū)動(dòng)程序,也稱為JDBC-ODBC 橋接器,是一種數(shù)據(jù)庫驅(qū)動(dòng)程序?qū)崿F(xiàn),它使用ODBC驅(qū)動(dòng)程序連接到數(shù)據(jù)庫。驅(qū)動(dòng)程序?qū)?JDBC 方法調(diào)用轉(zhuǎn)換為 ODBC 函數(shù)調(diào)用。

該驅(qū)動(dòng)程序,因?yàn)樗肙DBC的這又依賴于底層的本地庫依賴于平臺(tái)的操作系統(tǒng)的JVM是在運(yùn)行。此外,使用此驅(qū)動(dòng)程序會(huì)導(dǎo)致其他安裝依賴項(xiàng);例如,安裝了該驅(qū)動(dòng)程序的計(jì)算機(jī)上必須安裝ODBC,并且數(shù)據(jù)庫必須支持ODBC 驅(qū)動(dòng)程序。如果有純 Java 驅(qū)動(dòng)程序的替代品可用,則不鼓勵(lì)使用此驅(qū)動(dòng)程序。另一個(gè)含義是,鑒于驅(qū)動(dòng)程序和平臺(tái)之間的綁定,使用類型 1 驅(qū)動(dòng)程序的任何應(yīng)用程序都是不可移植的。該技術(shù)不適合高交易環(huán)境。類型 1 驅(qū)動(dòng)程序也不支持完整的 Java 命令集,并且受到 ODBC 驅(qū)動(dòng)程序功能的限制。

Sun(現(xiàn)在是 Oracle)提供了一個(gè) JDBC-ODBC 橋驅(qū)動(dòng)程序:sun.jdbc.odbc.JdbcOdbcDriver. 此驅(qū)動(dòng)程序是本機(jī)代碼而不是 Java,并且是封閉源代碼。Sun 的/Oracle 的 JDBC-ODBC Bridge 在 Java 8 中被刪除(其他供應(yīng)商的可用)。

如果已編寫驅(qū)動(dòng)程序以便加載它會(huì)導(dǎo)致創(chuàng)建一個(gè)實(shí)例并DriverManager.registerDriver使用該實(shí)例作為參數(shù)進(jìn)行調(diào)用,則它位于 DriverManager 的驅(qū)動(dòng)程序列表中并可用于創(chuàng)建連接。

有時(shí)可能會(huì)出現(xiàn)多個(gè) JDBC 驅(qū)動(dòng)程序能夠連接到給定 URL 的情況。例如,當(dāng)連接到給定的遠(yuǎn)程數(shù)據(jù)庫時(shí),可以使用 JDBC-ODBC 橋驅(qū)動(dòng)程序、JDBC-to-generic-network-protocol 驅(qū)動(dòng)程序或數(shù)據(jù)庫供應(yīng)商提供的驅(qū)動(dòng)程序。在這種情況下,測試驅(qū)動(dòng)程序的順序很重要,因?yàn)?DriverManager 將使用它找到的第一個(gè)可以成功連接到給定 URL 的驅(qū)動(dòng)程序。

首先,DriverManager 嘗試按照注冊(cè)的順序使用每個(gè)驅(qū)動(dòng)程序。(jdbc.drivers 中列出的驅(qū)動(dòng)程序總是首先注冊(cè)。)它將跳過任何不受信任的代碼的驅(qū)動(dòng)程序,除非它們是從與嘗試打開連接的代碼相同的源加載的。

它通過依次調(diào)用每個(gè)驅(qū)動(dòng)程序的 Driver.connect 方法來測試驅(qū)動(dòng)程序,并將用戶最初傳遞給方法的 URL 傳遞給它們DriverManager.getConnection。識(shí)別 URL 的第一個(gè)驅(qū)動(dòng)程序建立連接。

優(yōu)點(diǎn)

幾乎任何安裝了 ODBC 驅(qū)動(dòng)程序的數(shù)據(jù)庫都可以訪問,并且可以檢索數(shù)據(jù)。

缺點(diǎn)

性能開銷,因?yàn)檎{(diào)用必須通過 JDBC(java 數(shù)據(jù)庫連接)橋接至 ODBC(開放數(shù)據(jù)庫連接)驅(qū)動(dòng)程序,然后到達(dá)本機(jī)數(shù)據(jù)庫連接接口(因此可能比其他類型的驅(qū)動(dòng)程序慢)。

需要在客戶端計(jì)算機(jī)上安裝 ODBC 驅(qū)動(dòng)程序。

不適合小程序,因?yàn)榭蛻舳诵枰惭bODBC驅(qū)動(dòng)。

特定的 ODBC 驅(qū)動(dòng)程序并不總是適用于所有平臺(tái);因此,此驅(qū)動(dòng)程序的可移植性受到限制。

JDK 1.8 (Java 8) 不支持。

類型 2 驅(qū)動(dòng)程序 – 本機(jī) API 驅(qū)動(dòng)程序

JDBC 類型 2 驅(qū)動(dòng)程序,也稱為Native-API 驅(qū)動(dòng)程序,是一種使用數(shù)據(jù)庫客戶端庫的數(shù)據(jù)庫驅(qū)動(dòng)程序?qū)崿F(xiàn)。驅(qū)動(dòng)程序?qū)DBC方法調(diào)用轉(zhuǎn)換為數(shù)據(jù)庫 API 的本機(jī)調(diào)用。例如:Oracle OCI 驅(qū)動(dòng)程序是類型 2 驅(qū)動(dòng)程序。

優(yōu)點(diǎn)

由于沒有 JDBC-ODBC 橋的實(shí)現(xiàn),它可能比 Type 1 驅(qū)動(dòng)程序快得多。

缺點(diǎn)

需要在客戶端計(jì)算機(jī)上安裝供應(yīng)商客戶端庫。

并非所有數(shù)據(jù)庫都有客戶端庫。

此驅(qū)動(dòng)程序依賴于平臺(tái)。

此驅(qū)動(dòng)程序支持除小程序以外的所有 Java 應(yīng)用程序。

類型 3 驅(qū)動(dòng)程序 – 網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng)程序(中間件驅(qū)動(dòng)程序)

JDBC 類型 3 驅(qū)動(dòng)程序,也稱為數(shù)據(jù)庫中間件的純 Java 驅(qū)動(dòng)程序,是一種數(shù)據(jù)庫驅(qū)動(dòng)程序?qū)崿F(xiàn),它利用調(diào)用程序和數(shù)據(jù)庫之間的中間層。中間層(應(yīng)用程序服務(wù)器)將JDBC調(diào)用直接或間接轉(zhuǎn)換為特定于供應(yīng)商的數(shù)據(jù)庫協(xié)議。

這與類型 4 驅(qū)動(dòng)程序的不同之處在于協(xié)議轉(zhuǎn)換邏輯不在客戶端,而是在中間層。與類型 4 驅(qū)動(dòng)程序一樣,類型 3 驅(qū)動(dòng)程序完全用 Java 編寫。

同一個(gè)客戶端 JDBC 驅(qū)動(dòng)程序可以用于多個(gè)數(shù)據(jù)庫。這取決于中間件配置為支持的數(shù)據(jù)庫數(shù)量。類型 3 驅(qū)動(dòng)程序與平臺(tái)無關(guān),因?yàn)榕c平臺(tái)相關(guān)的差異由中間件處理。此外,利用中間件提供了額外的安全和防火墻訪問優(yōu)勢。

函數(shù)

將 JDBC API 調(diào)用發(fā)送到中間層網(wǎng)絡(luò)服務(wù)器,該服務(wù)器將調(diào)用轉(zhuǎn)換為 DBMS 特定的網(wǎng)絡(luò)協(xié)議。然后將轉(zhuǎn)換后的調(diào)用發(fā)送到特定的 DBMS。

遵循三層通信方法。

可以連接到多個(gè)數(shù)據(jù)庫——不是特定于供應(yīng)商的。

用 java 編寫的 JDBC Client 驅(qū)動(dòng)程序使用獨(dú)立于數(shù)據(jù)庫的協(xié)議與中間件網(wǎng)絡(luò)服務(wù)器通信,然后該網(wǎng)絡(luò)服務(wù)器將此請(qǐng)求轉(zhuǎn)換為該數(shù)據(jù)庫的數(shù)據(jù)庫命令。

因此,客戶端驅(qū)動(dòng)程序與中間件通信是獨(dú)立于數(shù)據(jù)庫的。

優(yōu)點(diǎn)

由于客戶端和中間件服務(wù)器之間的通信是獨(dú)立于數(shù)據(jù)庫的,因此客戶端上不需要數(shù)據(jù)庫供應(yīng)商庫。無需為新數(shù)據(jù)庫更改客戶端。

中間件服務(wù)器(可以是成熟的 J2EE 應(yīng)用程序服務(wù)器)可以提供典型的中間件服務(wù),如緩存(連接、查詢結(jié)果等)、負(fù)載平衡、日志記錄和審計(jì)。

單個(gè)驅(qū)動(dòng)程序可以處理任何數(shù)據(jù)庫,前提是中間件支持它。

例如:IDA 服務(wù)器

缺點(diǎn)

需要在中間層完成特定于數(shù)據(jù)庫的編碼。

添加的中間件層可能會(huì)導(dǎo)致額外的延遲,但通常可以通過使用更好的中間件服務(wù)來克服。

類型 4 驅(qū)動(dòng)程序 – 數(shù)據(jù)庫協(xié)議驅(qū)動(dòng)程序/瘦驅(qū)動(dòng)程序(純 Java 驅(qū)動(dòng)程序)

JDBC 類型 4 驅(qū)動(dòng)程序,也稱為 Direct to Database Pure Java Driver,是一種數(shù)據(jù)庫驅(qū)動(dòng)程序?qū)崿F(xiàn),可將JDBC調(diào)用直接轉(zhuǎn)換為特定于供應(yīng)商的數(shù)據(jù)庫協(xié)議。

4 類驅(qū)動(dòng)程序完全用Java編寫,因此與平臺(tái)無關(guān)。它們安裝在客戶端的Java 虛擬機(jī)中。這提供了比類型 1 和類型 2 驅(qū)動(dòng)程序更好的性能,因?yàn)樗鼪]有將調(diào)用轉(zhuǎn)換為 ODBC 或數(shù)據(jù)庫 API 調(diào)用的開銷。與類型 3 驅(qū)動(dòng)程序不同,它不需要相關(guān)軟件即可工作。

由于數(shù)據(jù)庫協(xié)議是特定于供應(yīng)商的,JDBC 客戶端需要單獨(dú)的驅(qū)動(dòng)程序(通常由供應(yīng)商提供)來連接到不同類型的數(shù)據(jù)庫。

優(yōu)點(diǎn)

完全用Java實(shí)現(xiàn)以實(shí)現(xiàn)平臺(tái)獨(dú)立性。

這些驅(qū)動(dòng)程序不會(huì)將請(qǐng)求轉(zhuǎn)換為中間格式(例如 ODBC)。

客戶端應(yīng)用程序直接連接到數(shù)據(jù)庫服務(wù)器。不使用翻譯或中間件層,提高了性能。

JVM 可以管理應(yīng)用程序到數(shù)據(jù)庫連接的所有方面;這樣可以方便調(diào)試。

缺點(diǎn)

驅(qū)動(dòng)程序是特定于數(shù)據(jù)庫的,因?yàn)椴煌臄?shù)據(jù)庫供應(yīng)商使用廣泛不同的(通常是專有的)網(wǎng)絡(luò)協(xié)議。

如果大家想了解更多相關(guān)知識(shí),不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面有更豐富的內(nèi)容在等著大家學(xué)習(xí),相信對(duì)大家會(huì)有所幫助的。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲精品国产成人 | 日韩中文在线视频 | 欧洲精品 | 亚洲综合激情另类图片专区 | 日本一区二区在线播放 | 狠狠干天天 | 久久视屏这里只有精品6国产 | 亚洲欧美日韩国产精品一区 | 亚州一二区| 精品的一区二区三区 | 玖玖玖精品视频免费播放 | 亚洲一区二区三区影院 | 在线欧美激情 | 九九色影院 | 狼狼色丁香久久婷婷综合五月 | 国产2021久久精品 | 欧美黄色免费在线观看 | 欧美亚洲国产精品久久久 | 激情久久久久久久久久久 | 亚洲欧美一区二区三区在饯 | 97影院理论片| 女性牲交一级毛片 | 一级一片免费看 | 亚洲欧洲国产成人综合一本 | 久久精品国产半推半就 | 日本欧美小视频 | 欧美色域 | 日本草草影院 | 国产人成激情视频在线观看 | 亚洲欧美视频一区二区三区 | 日本一级特大毛片 | 奇米影视777狠狠狠888不卡 | 免费特黄一级欧美大片在线看 | 日韩欧美一区二区久久 | 国产高清不卡一区二区三区 | 久久久最新精品 | 奇米影视久久 | 黄色录像一级毛片 | 神马影院在线观看我不卡 | 日日干夜夜操视频 | 在线观看日韩 |