Java連接數據庫的4中方式詳解

Java連接數據庫的方式有多種:根據所需要的不同數據庫驅動分,分爲四種:

1:1類驅動。這就是JDBC-ODBC橋的方式。

但這種方式不適合程序的重用與維護,不推薦使用。需要數據庫的ODBC驅動。

2:2類驅動。這就是JDBC+廠商API的形式。

廠商API一般使用C編寫,所以,這種方式也不長使用。

3:3類驅動。這就是JDBC+廠商Database Connection Server+DataBase的形式。

這種方法就是在JAVA 與 DATABASE之間起了一臺專門用與數據庫連接的服務器(一般由數據庫廠商提供)。

他的好處在於能優化連接。

4:4類驅動。這就是純JDBC+DATABASE的連接方式。也是推薦的連接方式。

這使得APPLICATION與數據庫分開,開發者只需關心內部邏輯的實現而不需注重數據庫連接的具體實現。

在這其中有兩種連接的方式:硬編碼方式,就是在程序中硬性編入數據庫連接的所須參數。

JNDI DataSource方式。就是在程序運行的外布環境中又稱(Context)設置一個datasource數據源,有一個jndi 名稱,程序只須查找此名稱就可得到一個數據庫連接的對象。

 

 

Type 1: jdbc-odbc橋 Jdbc-odbc 橋 是sun公司提供的,是jdk提供的的標準api. 

這種類型的驅動實際是把所有 jdbc的調用傳遞給odbc ,再由odbc調用本地數據庫驅動代碼.( 本地數據庫驅動代碼是指 由數據庫廠商提供的數據庫操作二進制代碼庫,例如在Oracle for windows中就是oci dll 文 件)

只要本地機裝有相關的odbc驅動那麼採用jdbc-odbc橋幾乎可以訪問所有的數據庫,jdbc- odbc方法對於客戶端已經具備odbc driver的應用還是可行的。

但是,由於jdbc-odbc先調用 odbc再由odbc去調用本地數據庫接口訪問數據庫.所以,執行效率比較低,對於那些大數據 存取的應用是不適合的.

而且,這種方法要求客戶端必須安裝odbc 驅動,所以對於基於 internet ,intranet的應用也是不合適的.因爲,你不可能要求所有客戶都能找到odbc driver.

=====一般ACCESS用到的比較多,初學者用。實際項目是不用的

 

Type 2: 本地Api驅動

本地api驅動直接把jdbc調用轉變爲數據庫的標準調用再去訪問數據庫。

這種方法需要本地 數據庫驅動代碼. 本地api驅動|廠商DB代碼---數據庫Server這種驅動比起jdbc-odbc橋執行效率大大提高了.

但是,它仍然需要在客戶端加載數據庫廠商 提供的代碼庫.這樣就不適合基於internet的應用.並且,他的執行效率比起3,4型的jdbc驅動 還是不夠高。

 

Type3:網絡協議驅動 

這種驅動實際上是根據我們熟悉的三層結構建立的. jdbc先把對數局庫的訪問請求傳遞給網 絡上的中間件服務器. 中間件服務器再把請求翻譯爲符合數據庫規範的調用,

再把這種調用傳給數據庫服務器.如果中間件服務器也是用java開發的,那麼在在中間層也可以使用1,2型 jdbc驅動程序作爲訪問數據庫的方法. 

網絡協議驅動--中間件服務器---數據庫Server

由於這種驅動是基於server的.所以,它不需要在客戶端加載數據庫廠商提供的代碼庫.而且 他在執行效率和可升級性方面是比較好的.因爲大部分功能實現都在server端,

所以這種驅動 可以設計的很小,可以非常快速的加載到內存中. 但是,這種驅動在中間件層仍然需要有配置 其它數據庫驅動程序,並且由於多了一箇中間層傳遞數據,

它的執行效率還不是最好.

 

Type4 純JAVA驅動 

這種驅動直接把jdbc調用轉換爲符合相關數據庫系統規範的請求.由於4型驅動寫的應用可 以直接和數據庫服務器通訊.這種類型的驅動完全由java實現,

因此實現了平臺獨立性. 本地協議驅動---------數據庫Server

由於這種驅動不需要先把jdbc的調用傳給odbc或本地數據庫接口或者是中間層服務器.所以它的執行效率是非常高的.而且,它根本不需要在客戶端或服務器端裝載任何的軟件

或驅動. 這種驅動程序可以動態的被下載.但是對於不同的數據庫需要下載不同的驅動程序.

 

以上對四種類型的jdbc驅動做了一個說明.那麼它們適合那種類型的應用開發呢?

提示:Jdbc-odbc橋由於它的執行效率不高,更適合做爲開發應用時的一種過度方案,或着對於初學 者瞭解jdbc編程也較適用.

 對於那些需要大數據量操作的應用程序則應該考慮2,3,4型驅動.在internet方面的應用可以考慮2型驅動,

但是由於3,4型驅動在執行效率上比2型驅動有着明顯的優勢,而且目前開發 的趨勢是使用純java.所以3,4型驅動也可以作爲考慮對象. 至於基於internet方面的應用就只有考慮3,4型驅動了. 因爲3型驅動可以把多種數據庫驅動都配置在中間層服務器.所以3型驅動最適合那種需要同時連接多個不同種類的數據庫, 並且對併發連接要求高的應用. 4型驅動則適合那些連接單一數據庫的工作組應用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章