自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JDBC數(shù)據庫驅動程序種類及選擇

開發(fā) 后端 數(shù)據庫運維
JDBC數(shù)據庫驅動程序主要有四個類型。這個四個類型的驅動程序各有各的特點,并不能夠說哪一個最好。數(shù)據庫管理員需要結合企業(yè)的實際情況,才能夠選擇一個合適的數(shù)據庫驅動類型。

現(xiàn)在目前數(shù)據庫驅動程序市場上,JDBC數(shù)據庫驅動程序主要有四個類型。這個四個類型的驅動程序各有各的特點,并不能夠說哪一個最好。數(shù)據庫管理員需要結合企業(yè)的實際情況,才能夠選擇一個合適的數(shù)據庫驅動類型。下面筆者就JDBC數(shù)據庫驅動程序,來談談這個四個類型的JDBC各具有什么樣的特點,適合在什么樣的情況下使用。

類型一:廠商提供專屬JDBC驅動程序

有些廠商如Oracle或者SYBASE,這些數(shù)據庫廠商他們自己開發(fā)了一些JDBC驅動程序。這個類型的JDBC驅動程序會將JDBC調用直接轉換為關系數(shù)據庫本身使用的通信協(xié)議。換一句話說,應用程序客戶端可以直接與數(shù)據庫創(chuàng)建連接。這種類型的JDBC驅動程序主要有如下幾個特點。

一是JDBC驅動程序是數(shù)據庫廠商提供的,所以應用程序可以直接跟數(shù)據庫進行連接,其執(zhí)行性能要比其他類型的JDBC數(shù)據庫驅動程序要好,比ODBC數(shù)據庫驅動程序也要好。目前已經有很多數(shù)據庫廠商提供專屬的JDBC驅動程序,如甲骨文公司的Oracle數(shù)據庫產品,如微軟公司的SQL Server等等。

二是往往這類JDBC驅動程序全部是由JAVA程序開發(fā)的,而不是有C語言開發(fā)的。為此這類驅動程序往往跨平臺的性能比較好,可以在多個操作系統(tǒng)平臺上運行。為此如果企業(yè)在Linux等非微軟的操作系統(tǒng)上部署數(shù)據庫應用,那么采用這種類型的數(shù)據庫驅動程序是一個明智的選擇。

三是這類驅動程序缺乏彈性。由于是數(shù)據庫廠商自己提供的專屬驅動程序,為此往往只適用于自己的數(shù)據庫系統(tǒng),甚至只適合某個版本的數(shù)據庫系統(tǒng)。如果后臺數(shù)據庫換了一個或者版本升級了,則就有可能需要更換數(shù)據庫驅動程序。這一個缺陷,是限制這個類型的數(shù)據庫驅動程序應用的最大障礙之一。不過根據筆者的經驗,如果企業(yè)的數(shù)據庫應用主要是在企業(yè)局域網內部使用,則這個問題不會很大。因為此時企業(yè)往往不會隨意更換數(shù)據庫系統(tǒng),或者對數(shù)據庫系統(tǒng)進行升級。為此也就會不會因為這個數(shù)據庫驅動程序彈性不好而給日后的工作帶來麻煩。

為此筆者建議,如果企業(yè)的數(shù)據庫應用相對穩(wěn)定,那么在數(shù)據庫開發(fā)或者部署的時候,最好使用廠商提供的專屬JDBC驅動程序。因為這個類型的數(shù)據庫驅動程序其與數(shù)據庫之間的連接最直接,其執(zhí)行性能最好。不過其前提是數(shù)據庫廠商提供了這種類型的JDBC驅動程序。據筆者了解,像開源的MySQL數(shù)據庫好像還沒有提供專屬的JDBC驅動程序。如果數(shù)據庫管理員在MySQL數(shù)據庫平臺上部署應用的話,則即使想采用專屬JDBC數(shù)據庫驅動程序也是行不通的。此時可能管理員要采用其他類型的JDBC數(shù)據庫驅動程序。

類型二:三層式架構的JDBC驅動程序。

這種三層式架構的JDBC驅動程序主要采用間接連接方式來連接數(shù)據庫。首先JDBC數(shù)據庫驅動程序會先將JDBC函數(shù)調用翻譯成與數(shù)據庫無關的網絡通信協(xié)議。其次由一個叫做中介層服務器的部件會充當翻譯家的角色,會對這些報文進行翻譯。最后JDBC才把這部分內容轉換成相對應的關系型數(shù)據庫通信協(xié)議。也就是說,在客戶端與數(shù)據庫服務器之間有一個中介服務器的角色,客戶端與服務器之間的通信需要通過這個中介服務器來進行。

這個類型的JDBC數(shù)據庫驅動類型有如下幾個特點。

一是提供了比較好的擴展性。如當某些原因下需要更換后臺數(shù)據庫的時候,只需要調整中介層與數(shù)據庫之間的JDBC驅動程序即可。而對于前端的應用程序的負面影響可以降至到最低。在大部分情況下,前端的應用程序基本上不需要調整;有些只需要重新指定所采用的后臺數(shù)據庫即可。

二是這個JDBC驅動程序也是百分之百利用JAVA語言進行編寫的。為此如果采用的應用程序開發(fā)平臺也是JAVA的話,那么無疑他們之間的兼容性會很好。所以如果采用的是JDeveloper等JAVA開發(fā)平臺的話,這種類型的數(shù)據庫驅動程序能夠為數(shù)據庫開發(fā)人員提供比較穩(wěn)定的開發(fā)平臺。

三是在性能上,其不甚理想。由于采用三層式架構的JDBC數(shù)據庫驅動程序,其需要通過中介服務器角色來訪問數(shù)據庫。雖然這種架構提供了比較高的擴展性,但是其執(zhí)行性能的話就受到了影響。在同等條件下,這種類型的數(shù)據庫驅動程序其執(zhí)行性能沒有專屬JDBC驅動程序好。魚與熊掌不能夠兼得,數(shù)據庫開發(fā)人員需要在性能與擴展性上做出一個艱難的抉擇。

類型三:客戶端函數(shù)庫類型的數(shù)據庫驅動程序。

通常情況下數(shù)據庫軟件會提供一種叫做客戶端函數(shù)庫的組件。這種類型的數(shù)據庫驅動程序就是建立在這個函數(shù)庫之上的。此時系統(tǒng)會先將JDBC調用轉換成數(shù)據庫的客戶端函數(shù)庫對應的應用程序接口(這個步驟在客戶端上完成),然后再同數(shù)據庫進行連接。這種方式跟三層式架構的JDBC驅動程序不同。前者是直接連接數(shù)據庫的,而后者則是以間接的方式(中間有中介服務器角色)來連接數(shù)據庫。對于這種類型的數(shù)據庫驅動程序有如下幾個特點。

一是創(chuàng)建于各數(shù)據庫特有的客戶端函數(shù)庫之上,為此其執(zhí)行性能比較好。通常情況下各個數(shù)據庫廠商會根據自己數(shù)據庫軟件的特點,開發(fā)客戶端函數(shù)庫。他們在開發(fā)這個函數(shù)庫的同時,本身就考慮到了性能與優(yōu)化方面的問題。而且,這種類型的數(shù)據庫驅動程序又是直接連接數(shù)據庫的,為此從性能上考慮,其要比三層式架構的JDBC驅動程序要好的多。但是反過來說,其執(zhí)行性能在同等條件下仍然趕不上第一種專屬JDBC驅動程序。

二是其兼容性差。如果數(shù)據庫管理員采用這個類型的數(shù)據庫驅動程序的話,需要在客戶端上安裝特定的軟件(其中包含有客戶端函數(shù)庫)。而且這個軟件往往是數(shù)據庫廠商提供的。不同廠商的數(shù)據庫軟件其客戶端函數(shù)庫是不同的。為此如果需要更換數(shù)據庫系統(tǒng)的話,此時需要同時更新各個客戶端的函數(shù)庫。當數(shù)據庫用戶比較多的時候,這是非常耗時的一項工作。

三是其不是百分之百的利用JAVA語言編寫。由于客戶端函數(shù)庫中的內容很多都是跟數(shù)據庫的編程平臺相關。為此這種類型的JDBC驅動程序不可能百分之百都有JAVA語言來實現(xiàn)。由于這方面的限制,為此其跟JAVA應用程序開發(fā)平臺的兼容性就沒有以上兩個類型的驅動程序那么好了。而且能夠提供這種類型的數(shù)據庫驅動程序的廠商也不是很多。如好像微軟的SQL SERVER等數(shù)據庫系統(tǒng)也沒有提供這方面的JDBC驅動程序。所以從應用層面考慮,這種數(shù)據庫驅動類型是使用的最少的。

類型四:橋接型的JDBC驅動程序。

有些應用系統(tǒng),以前是在ODBC數(shù)據庫啟動程序上面開發(fā)的;而現(xiàn)在數(shù)據庫管理想在JDBC數(shù)據庫驅動程序開發(fā)應用程序,那該怎么辦呢?數(shù)據庫開發(fā)人員是否需要推翻原有的架構進行重新開發(fā)呢?答案是否定的,也是肯定的。這個答案或許有點前后矛盾的感覺。否定說的是數(shù)據庫管理員不用全部推翻原先的架構,而是可以原先的架構跟新的架構并存。肯定的是為了后續(xù)應用程序性能與穩(wěn)定性的考慮,在合適的時候數(shù)據庫開發(fā)人員最好能夠慢慢的對原先的開發(fā)架構進行調整。不過在這個調整的過程中,新舊兩個開發(fā)架構是可以同時采用的。另外有些數(shù)據庫系統(tǒng)可能沒有提供以上三種類型的任何一種JDBC數(shù)據庫啟動程序。如使用用戶比較多的ACCESS數(shù)據庫系統(tǒng)。如果JAVA程序開發(fā)人員需要在這個數(shù)據庫上開發(fā)應用軟件的話,可能就需要用到這個橋接型的JDBC驅動程序。這個類型的數(shù)據庫驅動程序有如下幾個特點。

一是其保留了ODBC數(shù)據庫驅動程序,把相關的SQL語句通過JDBC驅動程序轉換為ODBC數(shù)據庫驅動程序可以理解的語句。應用這個數(shù)據類型的時候,數(shù)據庫管理員不用考慮數(shù)據庫底層的連接問題。同時如果應用系統(tǒng)原先是在ODBC的架構下開發(fā)的,還可以保留原先的架構。

二是其維護比其他類型的驅動程序都要麻煩與復雜。一方面由于這種類型的驅動程序仍然需要用到ODBC,所以在客戶端上還需要部署有ODBC驅動程序。另一方面,系統(tǒng)先調用JDBC驅動程序;然后再通過JDBC驅動程序調用ODBC數(shù)據庫驅動程序;然后再連接到數(shù)據庫。中間經過了多個環(huán)節(jié)。如何其中任何一個環(huán)節(jié)出現(xiàn)了問題,都可能導致數(shù)據庫連接的故障。萬一真的出現(xiàn)了問題的話,那么數(shù)據庫管理員查找問題就會變得復雜的多。

總之筆者建議數(shù)據庫管理員最好采用第一、二種數(shù)據庫驅動程序;如果這兩種驅動程序不支持的話,那么就采用第三種驅動程序。對于第一種驅動程序數(shù)據庫管理員要慎用,除非數(shù)據庫管理員對自己的能力相當?shù)淖孕拧?/P>

 

【編輯推薦】

  1. JDBC技術發(fā)展歷程以及技術概覽
  2. JDBC與JSP簡單模擬MVC三層架構
  3. 在JDBC設計中加速JSP訪問數(shù)據庫
責任編輯:佚名 來源: IT專家網
相關推薦

2011-03-17 14:19:23

JDBC數(shù)據庫驅動程序

2009-07-06 18:17:46

JDBC驅動程序

2009-06-15 14:18:00

netbeans配置JDBC驅動程序

2009-07-20 18:01:38

Oracle JDBC

2009-07-15 15:30:12

MyEclipse J

2009-07-16 13:26:43

DB2 JDBC驅動

2009-07-10 17:13:29

Jython的安裝JDBC驅動程序Jython

2009-09-04 10:10:33

Visual Basi

2009-07-08 18:20:21

JDBC驅動

2009-08-12 18:20:39

C#事件驅動程序

2017-03-03 08:40:32

2011-01-10 18:21:38

linux編寫程序

2010-01-07 13:27:22

Linux驅動程序

2009-07-06 17:23:34

JDBC連接數(shù)據庫

2009-07-16 17:22:56

JDBC數(shù)據庫編程

2009-07-09 15:41:15

JDBC連接MySQL

2021-12-06 07:47:36

Linux 驅動程序Linux 系統(tǒng)

2019-10-22 15:40:34

Windows 10驅動程序Windows

2009-12-07 09:39:04

Linux設備驅動硬件通信

2013-10-31 16:29:10

Linux內核
點贊
收藏

51CTO技術棧公眾號