?? jdbctm 指南:入門.txt
字號:
到目前為止,中間層通常都用 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 網頁以得到更新信息。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -