JDBC驅動類別淺析
一、JDBC -ODBC橋
JDBC -ODBC橋加ODBC驅動程序,JavaSoft橋產品利用ODBC驅動程序提供JDBC訪問。注意,必須將ODBC二進制代碼(許多情況下還包括數據庫客戶機代碼)加載到使用該驅動程序的每個客戶機上。這種類型的JDBC驅動程序最適合于企業網(這種網絡上客戶機的安裝不是主要問題),或者是用Java編寫的三層結構的應用程序服務器代碼。
Application--->JDBC -ODBC Bridge(Type1 jdbc driver)---->JDBC -ODBC Library--->ODBC Driver-->Database
只要本地機裝有相關的odbc驅動那么采用jdbc -odbc橋幾乎可以訪問所有的數據庫,jdbc - odbc方法對于客戶端已經具備odbc driver的應用還是可行的。適用于快速的原型系統,沒有提供JDBC 驅動的數據庫如Access。
但是,由于jdbc -odbc先調用 odbc再由odbc去調用本地數據庫接口訪問數據庫.所以,執行效率比較低,對于那些大數據量 存取的應用是不適合的.而且,這種方法要求客戶端必須安裝odbc 驅動,所以對于基于 internet ,intranet的應用也是不合適的。
二、本地Api驅動:JAVA to Native API
這種類型的驅動程序把客戶機API上的JDBC驅動調用轉換為Oracle、Sybase、Informix、DB2或其它DBMS的調用。注意,象橋驅動程序一樣,這種類型的驅動程序要求將某些二進制代碼加載到每臺客戶機上。
Application--->JDBC Driver(Type2 jdbc driver)---->Native Database library---->Database 利用開發商提供的本地庫來直接與數據庫通信。本地api驅動直接把jdbc 調用轉變為數據庫的標準調用再去訪問數據庫。
三、網絡協議驅動:Java to net
這種驅動程序將JDBC 轉換為與DBMS無關的網絡協議,這種協議又被某個服務器轉換為一種DBMS協議。這種網絡服務器中間件能夠將它的純Java客戶機連接到多種不同的數據庫上。所用的具體協議取決于提供者。通常,這是最為靈活的JDBC 驅動程序。有可能所有這種解決方案的提供者都提供適合于Intranet用的產品。為了使這些產品也支持Internet訪問,它們必須處理Web所提出的安全性、通過防火墻的訪問等方面的額外要求。
Application--->Jdbc Driver(Type3 jdbc driver)----->java middleware--->JDBC Driver---->Database
JDBC先把對數局庫的訪問請求傳遞給網絡上的中間件服務器. 中間件服務器再把請求翻譯為符合數據庫規范的調用,再把這種調用傳給數據庫服務器.如果中間件服務器也是用java開發的,那么在在中間層也可以使用1,2型 jdbc 驅動程序作為訪問數據庫的方法。
由于這種驅動是基于server的.所以,它不需要在客戶端加載數據庫廠商提供的代碼庫.而且他在執行效率和可升級性方面是比較好的.因為大部分功能實現都在server端,所以這種驅動 可以設計的很小,可以非常快速的加載到內存中. 但是,這種驅動在中間件層仍然需要有配置 其它數據庫驅動程序,并且由于多了一個中間層傳遞數據,它的執行效率還不是最好。
四、本地協議驅動:JAVA to native dababase
這種類型的驅動程序將JDBC 調用直接轉換為DBMS所使用的網絡協議。這將允許從客戶機機器上直接調用DBMS服務器,是Intranet訪問的一個很實用的解決方法。
Application--->Jdbc driver(type4 jdbc driver)----->database engine--->database
這種驅動直接把JDBC調用轉換為符合相關數據庫系統規范的請求.由于4 型JDBC驅動寫的應用可以直接和數據庫服務器通訊.這種類型的驅動完全由java實現,因此實現了平臺獨立性。最高的性能,通過自己的本地協議直接與數據庫引擎通信,具備在Internet裝配的能力。
【編輯推薦】