程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java數據對象(JDO)的前世今生

Java數據對象(JDO)的前世今生

編輯:JAVA編程入門知識

  1 Java與數據庫應用,JDBC

  Java發明以來,在短短的幾年之間,迅速占領了從桌面應用(J2SE)到服務器(J2EE),再到小型設備嵌入式系統(J2ME)的應用開發市場,其語言吸取了SmallTalk的一切皆對象的理念,擺脫了C++的歷史累贅,簡潔、自由的風格贏得了很多開發者的喜愛。從JDK1.1開始,Java成為實用的語言,而不是被人觀望的新品秀;再經過JDK1.2的大量增強(尤其是Collection Framework),JDK1.3的虛擬機效率提升(HotSpot),JDK1.4的融合百家之長(Logging、RegExp、NewIO等),現在已經是成熟穩重,頗顯大家風范。

  在企業級市場上,大部分的應用建立在數據庫基礎上,數據是企業的生命,傳統開發語言,包括面向過程的C、面向對象的C++、變種Pascal的Delphi(非常棒的語言,我用過四年),面向數據的PowerBuilder等等,先後在數據庫開發的舞台上展現風姿。Java當然不會放過這些,於是,出現了JDBC。在JDBC的幫助下,Java也迅速滲入數據庫開發的市場,尤其是面向企業服務器的應用開發。

  今天要談的JDO,與JDBC有非常密切的關系,盡管JDO並不是只面向JDBC的數據對象包裝規范。下面先簡單地介紹一下JDBC。

  1.1 關系數據庫之百家爭鳴,ODBC

  關系數據庫的歷史一言難盡,我只能從我的接觸經歷和所見所聞,簡單地敘述一下。最早的時候,計算機還只在一些大型的研究機關露面,並不是普羅大眾可以涉及的。蘋果電腦將個人電腦引入民間,再隨著IBM的PC標准開放,個人電腦逐步普及開來,加上微軟的DOS操作系統,以及Borland的Turbo系列語言開發環境,老百姓發現原來電腦可以做這麼多事!後來,出現了DBASE,一個簡單的關系數據庫系統,和SQL語言。後來,Borland看到了數據庫的市場前景,推出了Paradox(也是當今Delphi和C++Builder中仍然使用的Paradox),一舉占領了民用數據庫的大部分江山,之後,Borland干脆收購了Dbase,後來又購買了InterBase,將數據庫市場的領先優勢一直保持到Windows3.0出現。這時候,微軟在Windows1.0和2.0被人痛罵之後頑強地推出3.0,以及更穩定的3.1和Win32API,造就了個人電腦桌面操作系統的霸主地位,在Borland未警覺的情況下,購買了同樣具有類Dbase數據庫技術的Fox公司,並迅速將其易用化,形成了FoxBase,後來演變成FoxPro,逐漸超過了Borland,成為個人電腦數據庫的大戶。微軟再接再勵,為簡單易用而低負荷要求的數據庫應用開發了Access,贏得了廣大開發人員的心。當然,同期的Oracle、Sybase、Informix等商用數據庫憑專注於企業級數據庫技術成為高端的幾位領軍人物。微軟當然也想成為高端數據庫供應商之一,於是自行開發一套面向企業級應用的數據庫,不過很快項目夭折,微軟不甘心,購買了Sybase的底層TDS技術,包裝成了SQL Server,憑微軟的高度易用性的特點,也占領了不少市場。

  當市場上出現眾多的數據庫產品之後,Borland和微軟都發現自己擁有的數據庫產品挺多,市場也不小,不同的產品給用戶帶來不同的配置任務,不利於所有產品的推廣,於是,兩者紛紛開始制定數據庫訪問的規范,微軟推出了ODBC,其面向開發人員的親和性,逐步獲得了認可,同時,Borland糾集了IBM和Novell也推出了IDAPI數據庫接口規范,也就是今天BDE的核心,不過後來Novell和IBM先後退出,只剩Borland獨力支撐。不過Borland是一個技術實力雄厚的公司,其技術一向領先於微軟,BDE的性能比初期的ODBC不知道要好多少倍,後來微軟偷師學藝,把連接池等技術加到ODBC中,在Delphi3.0及其BDE在市場上風光無限的時候,逐步趕了上來並有超過。直到今天,BDE仍是Borland的產品線上的數據庫訪問標准,而微軟如果不是將ODBC和多數數據庫的客戶端內嵌進Windows的話,估計BDE仍是市場的贏家。不過,微軟是玩弄市場的老手,通過對操作系統的壟斷,其數據庫產品和ODBC標准終究占據了多數開發市場。

  1.2 從optional pack到JDK的標准API

  Java開始涉及數據庫應用後,Sun就極力制定Java的數據庫規范,JDBC API就是類似ODBC一樣,對數據庫訪問的底層協議進行最基本的包裝,然後形成一套統一的數據訪問接口,數據庫連接、SQL語句句柄、結果集,都帶有ODBC的影子。以方便配置為目的,Sun極力推薦完全瘦客戶端的TYPE 4型JDBC驅動,這是一個不需要安裝數據庫客戶端的驅動規范,是現在使用最多的。當然,為了保持與舊的數據庫兼容,JDBC規范中包括了專用於連接ODBC的TYPE 1驅動和需要安裝數據庫客戶端的TYPE 2驅動,以及可以由廠商在數據庫服務端專門提供面向JDBC的服務的TYPE 3驅動。

  JDBC最早出現時,還不屬於標准JDK的一部分,而是作為一個額外包提供下載。後來,隨著Java編寫的數據庫應用的的增多,和JDBC規范本身的逐漸成熟,JDBC終於成為JDK1.1的一部分。

  JDBC目前最新的是3.0版本,還有正在討論中的4.0版本。實際上,在開發中使用得最多的還是1.0中的API,2.0中主要增加了可雙向滾動的結果集、更新批處理等提高可用性和性能的API,3.0主要增加了連接池、可更新的結果集等特性。4.0將在可管理性、連接池規范化等方面再做改進。

  2 面向對象與數據庫

  現在的程序員,沒有不知道面向對象的。作為接近真實客觀世界的開發概念,面向對象使程序代碼更易讀、設計更合理。在普遍存在的數據庫應用領域,開發人員對面向對象的追求從未停止過。從八十年代開始,就有很多公司和研究機構在進行著面向對象與數據庫結合的研究。

  2.1 SmallTalk、C與C++、Delphi-Object Pascal、Java

  面向對象的語言最早有好幾種雛形,IBM的SmallTalk是其中最為流行的,在SmallTalk中,一切都是對象,一切都是類,它將面向對象的概念發揮到了極致。面向對象的編程比起傳統的面向過程的方式挺進了一大步,使人們認識到:原來軟件可以這樣寫。不過,由於計算機基本結構與底層硬件體系和系統軟件的限制,SmallTalk還不能在理想的性能前提下推廣到普通的應用上,這一點暫時限制了SmallTalk的發展,接著,C語言的面向對象版C++出現了,由於使用C語言的人很多,C++很快成為面向對象編程的主流語言。不過,為了保證與C的兼容,C++保留了很多面向過程的痕跡,比如惡心的指針、全局變量等等。Pascal的改進版Object Pascal相對來說安全許多,後來Borland干脆將Object Pascal換了個名字,叫Delphi,從此開創了一片面向對象編程的新世界, Delphi的嚴謹語法和快速編譯吸引了眾多的應用開發者,加上Borland的完美的VCL組件體系,比起MFC來方便而容易,另外,Delphi完整的數據庫組件,也將數據庫開發變得簡單而容易,Delphi再次成為成熟的面向對象開發語言。微軟當然不會放過這些,通過將MFC內置到操作系統中,微軟的VC++也搶回一些市場。這也是為什麼Delphi開發的應用程序編譯後會比VC、VB開發的程序大的原因。

  1995年,Sun的一個開發小組本來為了小型嵌入式系統開發OAK語言,結果無心插柳柳成蔭,發展出了Java語言,它是一個完全擺脫了傳統語言的各種負擔的面向對象的語言,當然,也保留了一些非面向對象的核心(原始類型)以保證速度。現在Java也為最流行的面向對象語言之一。當然,微軟同樣不會放過它,擅於模仿的微軟立即弄出一個C#來與之競爭,並在C#中保留了一些變種的指針(指代)以吸引傳統的C開發者。關於這些語言的各自特點,這裡就不一一贅述了。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一頁
  • 尾頁
  • 共9頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved