亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JDBCTM 指南:入門1 - 介紹

2019-11-18 13:59:38
字體:
來源:轉載
供稿:網友

  本簡介是從《JDBCTM Database access from javaTM: A Tutorial and Annotated Reference 》這本書中摘引來的。
JavaSoft 目前正在預備這本書。這是一本教程,同時也是 JDBC 的重要參考手冊,它將作為 Java 系列的組成部份在 1997 年春季由 Addison-Wesley 出版公司出版。


1.1 什么是 JDBCTM?
JDBCTM 是一種用于執行 SQL 語句的 JavaTM API(有意思的是,JDBC 本身是個商標名而不是一個縮寫字;然而,JDBC 常被認為是代表 “Java 數據庫連接 (Java Database Connectivity)”)。它由一組用 Java 編程語言編寫的類和接口組成。JDBC 為工具/數據庫開發人員提供了一個標準的 API,使他們能夠用純 Java API 來編寫數據庫應用程序。

有了 JDBC,向各種關系數據庫發送 SQL 語句就是一件很輕易的事。換言之,有了 JDBC API,就不必為訪問 Sybase 數據庫專門寫一個程序,為訪問 Oracle 數據庫又專門寫一個程序,為訪問 Informix 數據庫又寫另一個程序,等等。您只需用 JDBC API 寫一個程序就夠了,它可向相應數據庫發送 SQL 語句。而且,使用 Java 編程語言編寫的應用程序,就無須去憂慮要為不同的平臺編寫不同的應用程序。將 Java 和 JDBC 結合起來將使程序員只須寫一遍程序就可讓它在任何平臺上運行。

Java 具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。所需要的只是 Java 應用程序與各種不同數據庫之間進行對話的方法。而 JDBC 正是作為此種用途的機制。

JDBC 擴展了 Java 的功能。例如,用 Java 和 JDBC API 可以發布含有 applet 的網頁,而該 applet 使用的信息可能來自遠程數據庫。企業也可以用 JDBC 通過 Intranet 將所有職員連到一個或多個內部數據庫中(即使這些職員所用的計算機
有 Windows、 Macintosh 和 UNIX 等各種不同的操作系統)。隨著越來越多的程序員開始使用 Java 編程語言,對從 Java中便捷地訪問數據庫的要求也在日益增加。

MIS 治理員們都喜歡 Java 和 JDBC 的結合,因為它使信息傳播變得輕易和經濟。企業可繼續使用它們安裝好的數據庫,并能便捷地存取信息,即使這些信息是儲存在不同數據庫治理系統上。新程序的開發期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于商務上的銷售信息服務, Java 和 JDBC 可為外部客戶提供獲取信息更新的更好方法。


1.1.1 JDBC 的用途是什么?
簡單地說,JDBC 可做三件事:



與數據庫建立連接,
發送 SQL 語句,
處理結果。


下列代碼段給出了以上三步的基本示例:

Connection con = DriverManager.getConnection (
"jdbc:odbc:wombat", "login", "passWord");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}


1.1.2 JDBC 是一種低級 API ,是高級 API 的基礎
JDBC 是個“低級”接口,也就是說,它用于直接調用 SQL 命令。在這方面它的功能極佳,并比其它的數據庫連接 API 易于使用,但它同時也被設計為一種基礎接口,在它之上可以建立高級接口和工具。高級接口是“對用戶友好的”接口,它使用的是一種更易理解和更為方便的 API,這種 API 在幕后被轉換為諸如 JDBC 這樣的低級接口。在編寫本文時,正在開發兩種基于 JDBC 的高級 API:


一種用于 Java 的嵌入式 SQL。至少已經有一個提供者計劃編寫它。DBMS 實現 SQL:一種專門設計來與數據庫聯合使用的語言。JDBC 要求 SQL 語句必須作為 String 傳給 Java 方法。相反,嵌入式 SQL 預處理器答應程序員將 SQL 語句直接與Java 混在一起使用。例如,可在 SQL 語句中使用 Java 變量,用以接受或提供 SQL 值。然后,嵌入式 SQL 預處理器將通過 JDBC 調用把這種 Java/SQL 的混合物轉換為 Java。
關系數據庫表到 Java 類的直接映射。JavaSoft 和其它提供者都聲稱要實現該 API。在這種“對象/關系”映射中,表中的每行對應于類的一個實例,而每列的值對應于該實例的一個屬性。于是,程序員可直接對 Java 對象進行操作;存取數據所
需的 SQL 調用將在“掩蓋下”自動生成。此外還可提供更復雜的映射,例如將多個表中的行結合進一個 Java 類中。
隨著人們對 JDBC 的愛好日益增漲,越來越多的開發人員一直在使用基于 JDBC 的工具,以使程序的編寫更加輕易。程序員也一直在編寫力圖使最終用戶對數據庫的訪問變得更為簡單的應用程序。例如,應用程序可提供一個選擇數據庫任務的菜單。
任務被選定后,應用程序將給出提示及空白供填寫執行選定任務所需的信息。所需信息輸入后,應用程序將自動調用所需的SQL 命令。在這樣一種程序的協助下,即使用戶根本不懂 SQL 的語法,也可以執行數據庫任務。


1.1.3 JDBC 與 ODBC 和其它 API 的比較
目前,Microsoft 的 ODBC(開放式數據庫連接)API 可能是使用最廣的、用于訪問關系數據庫的編程接口。它能在幾乎所有平臺上連接幾乎所有的數據庫。為什么 Java 不使用 ODBC?

對這個問題的回答是:Java 可以使用 ODBC,但最好是在 JDBC 的幫助下以 JDBC-ODBC 橋的形式使用,這一點我們稍后再說?,F在的問題已變成:“為什么需要 JDBC”? 回答如下:


ODBC 不適合直接在 Java 中使用,因為它使用 C 語言接口。從 Java 調用本地 C 代碼在安全性、實現、堅固性和程序的自動移植性方面都有許多缺點。
從 ODBC C API 到 Java API 的字面翻譯是不可取的。例如,Java 沒有指針,而 ODBC 卻對指針用得很廣泛(包括很輕易出錯的指針 "void *")。您可以將 JDBC 想象成被轉換為面向對象接口的 ODBC,而面向對象的接口對 Java 程序員來說較
易于接收。
ODBC 很難學。它把簡單和高級功能混在一起,而且即使對于簡單的查詢,其選項也極為復雜。相反,JDBC 盡量保證簡單功能的簡便性,而同時在必要時答應使用高級功能。
啟用“純 Java ”機制需要象 JDBC 這樣的 Java API。假如使用 ODBC,就必須手動地將 ODBC 驅動程序治理器和驅動程序安裝在每臺客戶機上。假如完全用 Java 編寫 JDBC 驅動程序則 JDBC 代碼在所有 Java 平臺上(從網絡計算機到大型機)
都可以自動安裝、移植并保證安全性。
總之,JDBC API 對于基本的 SQL 抽象和概念是一種自然的 Java 接口。它建立在 ODBC 上而不是從零開始。因此,熟悉 ODBC 的程序員將發現 JDBC 很輕易使用。JDBC 保留了 ODBC 的基本設計特征;事實上,兩種接口都基于 X/Open SQL CLI
(調用級接口)。它們之間最大的區別在于:JDBC 以 Java 風格與優點為基礎并進行優化,因此更加易于使用。

最近,Microsoft 又引進了 ODBC 之外的新 API: RDO、 ADO 和 OLE DB。這些設計在許多方面與 JDBC 是相同的,即它們都是面向對象的數據庫接口且基于可在 ODBC 上實現的類。但在這些接口中,我們未看見有非凡的功能使我們要轉而選擇它
們來替代 ODBC,尤其是在 ODBC 驅動程序已建立起較為完善的市場的情況下。它們最多也就是在 ODBC 上加了一種裝飾而已。這并不是說 JDBC 不需要從其最初的版本再發展了;然而,我們覺得大部份的新功能應歸入諸如前一節中所述的對象/關系映射和嵌入式 SQL 這樣的高級 API。


1.1.4 兩層模型和三層模型
JDBC API 既支持數據庫訪問的兩層模型,同時也支持三層模型。

在兩層模型中,Java applet 或應用程序將直接與數據庫進行對話。這將需要一個 JDBC 驅動程序來與所訪問的特定數據庫治理系統進行通訊。用戶的 SQL 語句被送往數據庫中,而其結果將被送回給用戶。數據庫可以位于另一臺計算機上,用戶通過網絡連接到上面。這就叫做客戶機/服務器配置,其中用戶的計算機為客戶機,提供數據庫的計算機為服務器。網絡可以是 Intranet(它可將公司職員連接起來),也可以是 Internet。





在三層模型中,命令先是被發送到服務的“中間層”,然后由它將 SQL 語句發送給數據庫。數據庫對 SQL 語句進行處理并將結果送回到中間層,中間層再將結果送回給用戶。MIS 主管們都發現三層模型很吸引人,因為可用中間層來控制對公司數據的訪問和可作的的更新的種類。中間層的另一個好處是,用戶可以利用易于使用的高級 API,而中間層將把它轉換為相應的低級調用。最后,許多情況下三層結構可提供一些性能上的好處。




到目前為止,中間層通常都用 C 或 C++ 這類語言來編寫,這些語言執行速度較快。然而,隨著最優化編譯器(它把 Java字節代碼轉換為高效的特定于機器的代碼)的引入,用 Java 來實現中間層將變得越來越實際。這將是一個很大的進步,它使人們可以充分利用 Java 的諸多優點(如堅固、多線程和安全等特征)。JDBC 對于從 Java 的中間層來訪問數據庫非常重要。


1.1.5 SQL 的一致性
結構化查詢語言 (SQL) 是訪問關系數據庫的標準語言。困難之處在于:雖然大多數的 DBMS (數據庫治理系統)對其基本功能都使用了標準形式的 SQL,但它們卻不符合最近為更高級的功能定義的標準 SQL 語法或語義。例如,并非所有的數據庫都支持儲存程序或外部連接,那些支持這一功能的數據庫又相互不一致。人們希望 SQL 中真正標準的那部份能夠進行擴展以包括越來越多的功能。但同時 JDBC API 又必須支持現有的 SQL。

JDBC API 解決這個問題的一種方法是答應將任何查詢字符串一直傳到所涉及的 DBMS 驅動程序上。這意味著應用程序可以使用任意多的 SQL 功能,但它必須冒這樣的風險:有可能在某些 DBMS 上出錯。事實上,應用程序查詢甚至不一定要是 SQL,或者說它可以是個為特定的 DBMS 設計的 SQL 的專用派生物(例如,文檔或圖象查詢)。

JDBC 處理 SQL 一致性問題的第二種方法是提供 ODBC 風格的轉義子句。這將在 4.1.5 節“語句對象中的 SQL 轉義語法”中討論。

轉義語法為幾個常見的 SQL 分歧提供了一種標準的 JDBC 語法。例如,對日期文字和已儲存過程的調用都有轉義語法。

對于復雜的應用程序,JDBC 用第三種方法來處理 SQL 的一致性問題。它利用 DatabaseMetaData 接口來提供關于 DBMS 的描述性信息,從而使應用程序能適應每個 DBMS 的要求和功能。

由于 JDBC API 將用作開發高級數據庫訪問工具和 API 的基礎 API,因此它還必須注重其所有上層建筑的一致性?!胺?JDBC 標準TM" 代表用戶可依靠的 JDBC 功能的標準級別。要使用這一說明,驅動程序至少必須支持 ANSI SQL-2 Entry Level(ANSI SQL-2 代表美國國家標準局 1992 年所采用的標準。Entry Level 代表 SQL 功能的特定清單)。驅動程序開發人員可用 JDBC API 所帶的測試工具包來確定他們的驅動程序是否符合這些標準。

“符合 JDBC 標準TM” 表示提供者的 JDBC 實現已經通過了 JavaSoft 提供的一致性測試。這些一致性測試將檢查 JDBC API 中定義的所有類和方法是否都存在,并盡可能地檢查程序是否具有 SQL Entry Level 功能。當然,這些測試并不完全,而且 JavaSoft 目前也無意對各提供者的實現進行標級。但這種一致性定義的確可對 JDBC 實現提供一定的可信度。隨著越來越多的數據庫提供者、連接提供者、Internet 提供者和應用程序編程員對 JDBC API 的接受,JDBC 也正迅速成為 Java 數據庫訪問的標準。


1.2 JDBC 產品
在編寫本文時,有幾個基于 JDBC 的產品已開發完畢或正在開發中。當然,本節中的信息將很快成為過時信息。因此,有關最新的信息,請查閱 JDBC 的網站,可通過從以下 URL 開始瀏覽找到:

http://java.sun.com/PRodUCts/jdbc


1.2.1 JavaSoft 框架
JavaSoft 提供三種 JDBC 產品組件,它們是 Java 開發工具包 (JDK) 的組成部份:


JDBC 驅動程序治理器,


JDBC 驅動程序測試工具包,和


JDBC-ODBC 橋。


JDBC 驅動程序治理器是 JDBC 體系結構的支柱。它實際上很小,也很簡單;其主要作用是把 Java 應用程序連接到正確的JDBC 驅動程序上,然后即退出。

JDBC 驅動程序測試工具包為使 JDBC 驅動程序運行您的程序提供一定的可信度。只有通過 JDBC 驅動程序測試包的驅動程序才被認為是符合 JDBC 標準TM 的。

JDBC-ODBC 橋使 ODBC 驅動程序可被用作 JDBC 驅動程序。它的實現為 JDBC 的快速發展提供了一條途徑,其長遠目標提供一種訪問某些不常見的 DBMS(假如對這些不常見的 DBMS 未實現 JDBC) 的方法。





1.2.2 JDBC 驅動程序的類型
我們目前所知曉的 JDBC 驅動程序可分為以下四個種類:


JDBC-ODBC 橋加 ODBC 驅動程序:JavaSoft 橋產品利用 ODBC 驅動程序提供 JDBC 訪問。注重,必須將 ODBC 二進制代碼(許多情況下還包括數據庫客戶機代碼)加載到使用該驅動程序的每個客戶機上。因此,這種類型的驅動程序最適合于企業網(這種網絡上客戶機的安裝不是主要問題),或者是用 Java 編寫的三層結構的應用程序服務器代碼。 本地 API - 部份用 Java 來編寫的驅動程序: 這種類型的驅動程序把客戶機 API 上的 JDBC 調用轉換為 Oracle、 Sybase、Informix、DB2 或其它 DBMS 的調用。注重,象橋驅動程序一樣,這種類型的驅動程序要求將某些二進制代碼加載到每臺客戶機上。
JDBC 網絡純 Java 驅動程序:這種驅動程序將 JDBC 轉換為與 DBMS 無關的網絡協議,之后這種協議又被某個服務器轉換為一種 DBMS 協議。這種網絡服務器中間件能夠將它的純 Java 客戶機連接到多種不同的數據庫上。所用的具體協議取決于提供者。通常,這是最為靈活的 JDBC 驅動程序。有可能所有這種解決方案的提供者都提供適合于 Intranet 用的產品。為了使這些產品也支持 Internet 訪問,它們必須處理 Web 所提出的安全性、通過防火墻的訪問等方面的額外要求。幾家提供者正將 JDBC 驅動程序加到他們現有的數據庫中間件產品中。
本地協議純 Java 驅動程序:這種類型的驅動程序將 JDBC 調用直接轉換為 DBMS 所使用的網絡協議。這將答應從客戶機機器上直接調用 DBMS 服務器,是 Intranet 訪問的一個很實用的解決方法。由于許多這樣的協議都是專用的,因此數據庫提供者自己將是主要來源,有幾家提供者已在著手做這件事了。
最后,我們預計第 3、4 類驅動程序將成為從 JDBC 訪問數據庫的首選方法。第 1、2 類驅動程序在直接的純 Java 驅動程序還沒有上市前將會作為過渡方案來使用。對第 1、2 類驅動程序可能會有一些變種(下表中未列出),這些變種要求有連接器,但通常這些是更加不可取的解決方案。第 3、4 類驅動程序提供了 Java 的所有優點,包括自動安裝(例如,通過使用 JDBC 驅動程序的 applet applet來下載該驅動程序)。

下表顯示了這 4 種類型的驅動程序及其屬性:


驅動程序種類 純 JAVA? 網絡協議
1 - JDBC-OCBC 橋 非 直接
2 - 基于本地 API 的 非 直接
3 - JDBC 網絡的 是 要求連接器
4 - 基于本地協議的 是 直接



1.2.3 JDBC 驅動程序的獲取
在編寫本文時,已有幾十個屬于種類的驅動程序,即可與 Javasoft 橋聯合使用的 1: ODBC 驅動程序的驅動程序。有大約十多個屬于種類 2 的驅動程序是以 DBMS 的本地 API 為基礎編寫的。只有幾個屬于種類 3 的驅動程序。目前至少有 2 個屬于種類 4 的驅動程序,但到 1997 年底,我們預計主要的 DBMS 都會有種類 4 的驅動程序。

要獲取關于驅動程序的最新信息,請查閱 JDBC 的網站,其網址為: http:// java.sun.com/products/jdbc。提供第 3 種驅動程序的首批提供者是 SCO、Open Horizon、Visigenic 和 WebLogic。JavaSoft 和數據庫連接的領先提供者 Intersolv合作研制了 JDBC-ODBC 橋和 JDBC 驅動程序測試工具包。


1.2.4 其它產品
各種 JDBC 應用程序的開發工具正在開發中。請注重查閱 JavaSoft 網頁以得到更新信息。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91丝袜美腿美女视频网站| 国产精品v片在线观看不卡| 日韩高清电影好看的电视剧电影| 日韩精品小视频| 97在线视频一区| 亚洲日韩第一页| 中文日韩在线视频| 国产精品色婷婷视频| 欧美俄罗斯性视频| 97国产精品免费视频| 久久电影一区二区| 在线观看精品国产视频| 亚洲成人xxx| 欧美性少妇18aaaa视频| 成人a在线观看| 国产精品永久在线| 91精品在线观看视频| 91欧美精品午夜性色福利在线| 国产亚洲美女久久| 亚洲性av网站| 91国内在线视频| 日本精品视频在线播放| 国产91精品网站| 欧美日韩中文在线| 一区二区三区日韩在线| 国产精品视频免费观看www| 日韩电影免费观看中文字幕| 国产欧美精品日韩精品| 久久久亚洲福利精品午夜| 国产免费观看久久黄| 成人激情视频小说免费下载| 尤物九九久久国产精品的特点| 国产成人亚洲综合青青| 日本道色综合久久影院| 91av视频在线观看| 国产精品综合久久久| 欧美日韩亚洲视频| 欧美在线激情网| 亚洲аv电影天堂网| 国产精品福利小视频| 性视频1819p久久| 日韩欧美成人区| 久久精品91久久香蕉加勒比| 亚洲成人动漫在线播放| 欧美一级大片在线免费观看| 不卡中文字幕av| 久久亚洲国产成人| 疯狂欧美牲乱大交777| 欧美第一黄色网| 国内自拍欧美激情| 91精品国产乱码久久久久久久久| 久久天天躁夜夜躁狠狠躁2022| 亚洲第一黄色网| 日韩a**中文字幕| 国产精品你懂得| 亚洲无限乱码一二三四麻| 国产日韩av在线播放| 亚洲丝袜一区在线| 亚洲欧美制服综合另类| 日韩va亚洲va欧洲va国产| 国产一区二区三区毛片| 在线视频亚洲欧美| 中文字幕在线成人| 中文字幕亚洲无线码a| 曰本色欧美视频在线| 国产一区二区三区在线播放免费观看| 国产欧美精品在线| 久久噜噜噜精品国产亚洲综合| 在线性视频日韩欧美| 亚洲欧洲视频在线| 国产精品爱啪在线线免费观看| 欧美黄网免费在线观看| 日韩精品视频在线观看免费| 日韩精品在线视频美女| 777午夜精品福利在线观看| 精品成人国产在线观看男人呻吟| 国产91热爆ts人妖在线| 日韩精品免费电影| 久久久久久久久国产精品| 日本成熟性欧美| 性色av一区二区咪爱| 亚洲美女免费精品视频在线观看| 在线观看欧美日韩国产| 欧美丝袜一区二区三区| 日韩美女写真福利在线观看| 欧美俄罗斯性视频| 国产精品亚洲网站| 国产精品吹潮在线观看| 国产视频久久网| 欧美激情一二三| 欧美日韩中国免费专区在线看| 国产精品丝袜一区二区三区| 国产免费一区二区三区在线观看| 日韩精品视频在线观看网址| 精品国产区一区二区三区在线观看| 色综合视频一区中文字幕| 色噜噜狠狠狠综合曰曰曰| 5566成人精品视频免费| 国产精品成人一区二区三区吃奶| 亚洲国内精品视频| 亚洲精品久久7777777| 最近中文字幕mv在线一区二区三区四区| 欧美激情网友自拍| 日韩精品在线视频观看| 日韩高清电影免费观看完整版| 欧美性色视频在线| 91嫩草在线视频| 亚洲国产欧美精品| 精品成人久久av| 欧美亚洲免费电影| 久久综合色影院| 91久久在线观看| 奇米一区二区三区四区久久| 国产精品福利无圣光在线一区| 国产综合在线看| 日韩欧美亚洲范冰冰与中字| 久久韩国免费视频| 久久这里有精品视频| 国产精品老女人视频| 清纯唯美亚洲综合| 亚洲aaa激情| 亚洲aⅴ男人的天堂在线观看| 久久精品99久久久香蕉| 色先锋资源久久综合5566| 日韩av在线免费观看| 亚洲大胆人体视频| 国内精品小视频在线观看| 97在线视频国产| 欧美成人精品在线观看| 欧美亚洲国产视频| 欧洲精品毛片网站| 欧美黑人视频一区| 国产色综合天天综合网| 91久久精品国产| 日韩在线观看你懂的| 国产精品91在线| 日韩在线国产精品| 2019亚洲男人天堂| 久久精品国产清自在天天线| 国产成人综合一区二区三区| 亚洲精品电影在线观看| 97视频免费观看| 欧美三级欧美成人高清www| 国产成人亚洲综合青青| 久久久久久午夜| 国语自产偷拍精品视频偷| 国产一区二区三区在线| www.午夜精品| 欧美日韩高清区| 欧美一区三区三区高中清蜜桃| 色777狠狠综合秋免鲁丝| 亚洲激情中文字幕| 久久99精品久久久久久噜噜| www.日韩欧美| 亚洲国产日韩欧美在线图片| 欧美激情亚洲激情| 一级做a爰片久久毛片美女图片| 欧美精品xxx| 国内精品中文字幕| 久久久噜噜噜久久中文字免| 中文字幕亚洲一区二区三区五十路| 欧美伊久线香蕉线新在线| 久久av红桃一区二区小说| 欧美性生交xxxxx久久久|