国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

如何用JDO開發數據庫應用

2019-11-18 12:40:26
字體:
來源:轉載
供稿:網友

  本文將介紹如何使用Sun公司的最新《java Data Objects 》規范來進行基于數據庫的簡單應用程序的開發,從而使讀者對JDO有一個直接的感性的熟悉,為更深入的開發作鋪墊,同時也希望拋磚引玉,讓更多的富有經驗的高手也參與到推廣JDO的進程中來,為讀者提供更多更出色的文章!
  
  1. JDO是何方神圣,難道是ADO的翻版?
  本節對稍熟悉JDO一點的讀者來說,可能算是老生常談,一堆垃圾,不如回收掉算了。不過我卻認為這些是實話實說,有感而發,不吐不快,對新手可能也有一定的幫助,至少應該有一點共鳴吧。所以,老手請直接跳過本節。
  
  1.1. Java的優點
  自從Java語言面世以來,它那幾乎完全面向對象的特性和解放我們程序員的自動垃圾回收機制給我們展現了一個全新的開發天地:原來程序還可以這樣寫!我用過幾年C++,里面的指針簡直折壽!我還記得有些功能里面不得不使用類似“***lpszInfoMapOfMap”之類的變量,它是指針的指針的指針,要在編碼過程中準確地把握這一點已屬不易,何況還要記得釋放每一處占用的內存,并且還不能釋放多次(嚴格地說,應該是將自己申請的內存進行且只進行一次釋放)!我至今都還很佩服當年清楚的頭腦,然而在調試過程層出不窮的“accessViolation”和“NullPointer”錯誤竟使我一夜白頭!(有一次熬夜調試一個問題,第二天憔悴了很多。)C++之后,我也用過三年以上的Delphi,程序代碼好理解、易維護了很多,不過指針仍是胸中永遠的痛!直到Java,才使我脫離苦海,進入“按思維的速度進行開發”的時代……
  
  當Java的速度得到很大改善后,我們開始用它來寫數據庫應用,但說實話,Java的數據庫方面還很原始,圖形界面編程中的數據庫組件很不好用,再加上主要寫的是Web應用,只有JDBC接口可供選擇。提起JDBC,我相信很多讀者都會有這樣的印象:概念太多,嚴密但麻煩,尤其是資源的釋放也是一大問題。比起微軟的ADO來,簡直是一團亂麻,容錯性尤其差勁。
  
  1.2. 對象包裝技術,百家爭鳴?群魔亂舞?
  于是,從規范化開發的原則出發,我們開始寫自己的JavaBean來包裝數據對象,使數據對象化,避免太多的地方涉及JDBC操作。但一些問題也隨之而來:靈活性不夠,接口死板,性能低下,這使我一陣苦惱。于是,“君子性非異也,善假于物也”,咱也上網去找點“技術支持”!很快,竟然被我發現了“Castor JDO”,一個專用于數據包裝的撞闋榧峁┝薕DMG標準的OQL作為查詢語言,方便且輕易理解,比SQL好多了。這讓我享受了一段時間的“面向對象的數據庫開發”的好處,一句話,“效果不錯,還實惠!”。
  
  然而,好景不長,Castor一些內在的BUG影響了穩定性,而這個免費產品的更新又太慢,一直未能解決。只好放棄。“執手相看淚眼,竟無語凝噎”!怎么辦?要知道,由儉入奢易,由奢入儉難,吃過肉的人,怎能忍受只能吃菜的生活!象《甲方乙方》里面那個一心想吃素的大款還是不多見的。對我們來說,再使用JDBC原始調用似乎難以下咽,再用JavaBean包裝又有點返古,于是我又開始了網上的搜尋歷程。余秋雨先生有《文化苦旅》,咱這也算是《編程苦旅》了,呵呵,苦笑。
  
  從網上的資料來看,我的這些經歷也是很多Java開發同仁的共同經歷,無論是國內還是國外,不過從實際情況來看,國外的研究更深入更廣泛一些,至少從網上所能找到的資料來說是這樣。美國從八十年代起就開始研究面向對象的數據庫ODBMS,目前已有一些成形的產品,比如Versant公司的Versant數據庫,FastObjects公司的FastObjects t7數據庫,以及其它一些相對市場份額小一些的諸如ObjectStore等公司的產品,當然,也不乏一些免費的產品,如Orient等等。總的來說,ODBMS盡管擁有面向對象的優點,但由于歷史原因,在與關系數據庫RDBMS的競爭中始終處于下風,基于RDBMS的應用還是占絕大多數,因此,出現了Object-Relational映射的一些工具,前面提到的Castor就是近年來出現的一個工具,實際上更早的時候,已經有一些成熟、穩定的商業化產品出現,比如前一陣被Oracle收購的TopLink,被BEA收購的WebGain等等,比較有名氣的CocoBase等等。
  
  象TopLink這樣的產品我也了解了一下,功能確實強大,性能、穩定性都有優勢,然而,其同樣強大的價格和古怪的API令我卻步。我很擔心被鎖定在某個產品上面,無法脫身,眾所周知,Java給我們的就是一種自由的感覺,自由,永遠是那么地吸引人。
  
  出路在哪里?JDO浮現在我眼前。
  
  1.3. JDO浮出水面,可別以為是ADO
  JDO自1999年起就由一些經常寫數據庫對象映射層的富有經驗的開發人員提出大綱,他們在長期的面向對象開發中進行了大量的數據庫方面的處理和對象化包裝,終于,多種多樣的包裝方式引起很多兼容性方面的問題。于是,一些主要的開發團隊就聯合起來,以SUN為領頭羊,制定了JDO規范。它的目標不是取代JDBC或EJB,而是在JDBC的基礎上進行包裝,同時又可以做EJB的底層(CMP),簡化J2EE服務器提供商的工作。JDO主要面向中小型規模的項目,不過隨著產品提供商(Vendors)給出越來越多的功能(Feature),比如分布式的同步控制等等,JDO的作用也越來越大。
  JDO規范在Sun的富有經驗的Craig Russel的帶領下,經過三年的討論,終于在2002年四月形成了第一版。目前最新版是1.0.1版,在 http://access1.sun.com/jdo/ 可以看到。
  (大家應該知道,Java的規范形成時間一般都比較長,因為它太開放了,任何人都可以發表意見,參與制定規范的人都要考慮這些意見)
  
  ADO是微軟的數據訪問組件集合,相信很多寫過基于asp頁面的數據庫應用的朋友都印象深刻,快速、容錯性強是它的特點,不過擴展性就不敢恭維,寫多少年都是那幾個東東,無法超越。一些剛接觸JDO的讀者可能會將JDO與ADO搞混起來,以為是Java版的ADO,那就大錯特錯了,兩者風馬牛不相及,可以說不是一個檔次上的東西。慶幸的是,微軟沒有將“xDO”這類縮寫注冊成商標或專利,否則兩個大塊頭又要打官司了,嘿嘿,我倒是喜歡看熱鬧,打起來同樣出色!
  
  1.4. JDO產品介紹
  JDO規范自從2002年4月推出以來,出現了很多種各有特色的產品,當然,這些產品都遵循JDO規范,不會影響你寫的JDO應用的可移植性。下面列舉一下我對各個產品的印象:(參見第6節的參考文章:《JDO資源介紹》)
  
  教父:LiDO(法國LibeLis公司)
  我對JDO的熟悉主要是通過LiDO這個產品,它在2002年3月的一份圖文并茂的教程中簡要解說了JDO的使用和優點。這個教程可以在這里下載:http://www.objectweb.org/conference/JDO.pdf。LiDO的特色是大而全,支持文件型數據庫、RDBMS、ODBMS,甚至是xml數據庫。不過配置較麻煩。最新版本是2.0RC。
  霸主:KodoJDO(美國SolarMetrics公司)
  Kodo是JDO的中流砥柱之一,在JDO1.0還未最后通過的時候,它就是一個比較成熟的產品了,其特點是注重性能和穩定性,目前最新版本是2.5.0,是客戶最多的產品。
  最佳傳教士:JDOGenie(南非HemSphere公司)
  這是目前我最推薦的產品,最新版本是1.4.7,性能也不錯,穩定性還有待驗證,但它有一個最大的特點:集成性好,最易學,其公司的CTO David Tinker也是一個善解人意的年輕人,采納了很多網友的意見對產品進行改進,主要是在配置上非常方便,有一個專門的圖形界面工具,可以進行配置、數據庫生成、對象查詢等等很實用的功能。強烈推薦!
  大家閏秀:JRelay(德國ObjectIndustries公司)
  這也是一個出現得比較早的產品,也有一個GUI工具用于配置,曾幾何時,這個工具還是相對很方便的,但一年多過去了,好象沒什么進展,最新版本是2.0,我試過一段時間,后來就沒有再跟進了。
  兩面派:FrontierSuite for JDO (美國ObjectFrontier)
  這個產品與JRelay、Kodo一起,可算是早期的JDO三劍客,稱它為兩面派是因為它正向開發和反向開發都還可以。它的特色是反向工程(從表結構生成數據類)比較方便,與UML的結合也很強,不過真正運行起來的時候,配置復雜。當初該公司曾許諾我以10%的價格買一份,可惜我當時沒在意。假如上天再給我一次機會……
  免費午餐:TJDO(一群跨國界的有志之士)
  這是一個在Sun提供的參考產品(Reference Implementation)的基礎上加入一些擴展功能而形成的一個免費產品,目前最新版本是2.0beta3,不過進展也緩慢,這個版本已經出現好幾個月了沒有進一步的更新。
  
  
  以上這些是我用過的比較有代表性的產品,還有很多商業產品,以及其它一些或規范或不完全規范的免費JDO產品(如XORM、OJB等),這里不再一一列舉,有愛好的讀者可以到 http://www.jdocentral.com/ 去進一步了解。
  
  2. JDOGenie是哪路英雄
  前面已經提過,JDOGenie是南非的一個商業化產品,可別小看南非人,他們的收入可不少!當然技術也不錯。假如讀者做過UML的建模和設計,可能會知道Together Control Center這個產品,也就是最近被Borland收購的一個UML設計工具。JDOGenie的出品公司HemSphere就是Together的南非總代理和合作伙伴。
  
  說到這里,插句題外話,IBM收購了Rational,Borland收購了Together,Sun收購了DescribeUML,一場IDE+UML的大戰又將上演。
  
  好,書歸正傳,JDOGenie是我目前最推薦的產品,原因是易學易用,簡單上手,對于想學習JDO的朋友是最適合不過的了!它有一個圖形界面的配置工具,可在里面進行數據表映射、SQL操作、JDOQL查詢等等功能,非常方便。對采用JDOGenie的Web服務器也可以通過這個圖形工具進行監控,可以了解哪些查詢費時,哪些查詢執行次數多等等,有助于數據庫優化調節。
  
  俗話說,百聞不如一見,下面先給幾張圖片,過把癮先:
   
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双城市| 金寨县| 定州市| 阳谷县| 儋州市| 平顶山市| 武义县| 石林| 新蔡县| 云阳县| 栖霞市| 汤阴县| 安乡县| 灵丘县| 广灵县| 满城县| 南川市| 宣化县| 东阿县| 水富县| 阜宁县| 东至县| 瑞昌市| 银川市| 崇明县| 永泰县| 封丘县| 光山县| 龙门县| 江安县| 西平县| 大兴区| 花莲市| 富蕴县| 临朐县| 兴安县| 红河县| 洛宁县| 霍州市| 漳浦县| 吴江市|