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

首頁 > 學院 > 開發(fā)設計 > 正文

如何用JDO開發(fā)數(shù)據(jù)庫應用(1)

2019-11-18 13:45:59
字體:
供稿:網(wǎng)友

  如何用JDO開發(fā)數(shù)據(jù)庫應用(1)

本文將介紹如何使用Sun公司的最新《java Data Objects 》規(guī)范來進行基于數(shù)據(jù)庫的簡單應用程序的開發(fā),從而使讀者對JDO有一個直接的感性的熟悉,為更深入的開發(fā)作鋪墊,同時也希望拋磚引玉,讓更多的富有經(jīng)驗的高手也參與到推廣JDO的進程中來,為讀者提供更多更出色的文章!

· 1. JDO是何方神圣,難道是ADO的翻版?

本節(jié)對稍熟悉JDO一點的讀者來說,可能算是老生常談,一堆垃圾,不如回收掉算了。不過我卻認為這些是實話實說,有感而發(fā),不吐不快,對新手可能也有一定的幫助,至少應該有一點共鳴吧。所以,老手請直接跳過本節(jié)。

· 1.1. Java的優(yōu)點

自從Java語言面世以來,它那幾乎完全面向?qū)ο蟮奶匦院徒夥盼覀兂绦騿T的自動垃圾回收機制給我們展現(xiàn)了一個全新的開發(fā)天地:原來程序還可以這樣寫!我用過幾年C++,里面的指針簡直折壽!我還記得有些功能里面不得不使用類似“***lpszInfoMapOfMap”之類的變量,它是指針的指針的指針,要在編碼過程中準確地把握這一點已屬不易,何況還要記得釋放每一處占用的內(nèi)存,并且還不能釋放多次(嚴格地說,應該是將自己申請的內(nèi)存進行且只進行一次釋放)!

我至今都還很佩服當年清楚的頭腦,然而在調(diào)試過程層出不窮的“accessViolation”和“NullPointer”錯誤竟使我一夜白頭!(有一次熬夜調(diào)試一個問題,第二天憔悴了很多。)C++之后,我也用過三年以上的Delphi,程序代碼好理解、易維護了很多,不過指針仍是胸中永遠的痛!直到Java,才使我脫離苦海,進入“按思維的速度進行開發(fā)”的時代……

當Java的速度得到很大改善后,我們開始用它來寫數(shù)據(jù)庫應用,但說實話,Java的數(shù)據(jù)庫方面還很原始,圖形界面編程中的數(shù)據(jù)庫組件很不好用,再加上主要寫的是Web應用,只有JDBC接口可供選擇。提起JDBC,我相信很多讀者都會有這樣的印象:概念太多,嚴密但麻煩,尤其是資源的釋放也是一大問題。比起微軟的ADO來,簡直是一團亂麻,容錯性尤其差勁。

· 1.2. 對象包裝技術,百家爭鳴?群魔亂舞?

于是,從規(guī)范化開發(fā)的原則出發(fā),我們開始寫自己的JavaBean來包裝數(shù)據(jù)對象,使數(shù)據(jù)對象化,避免太多的地方涉及JDBC操作。但一些問題也隨之而來:靈活性不夠,接口死板,性能低下,這使我一陣苦惱。于是,“君子性非異也,善假于物也”,咱也上網(wǎng)去找點“技術支持”!很快,竟然被我發(fā)現(xiàn)了“Castor JDO”,一個專用于數(shù)據(jù)包裝的撞闋榧峁┝薕DMG標準的OQL作為查詢語言,方便且輕易理解,比SQL好多了。這讓我享受了一段時間的“面向?qū)ο蟮臄?shù)據(jù)庫開發(fā)”的好處,一句話,“效果不錯,還實惠!”。

然而,好景不長,Castor一些內(nèi)在的BUG影響了穩(wěn)定性,而這個免費產(chǎn)品的更新又太慢,一直未能解決。只好放棄。“執(zhí)手相看淚眼,竟無語凝噎”!怎么辦?要知道,由儉入奢易,由奢入儉難,吃過肉的人,怎能忍受只能吃菜的生活!象《甲方乙方》里面那個一心想吃素的大款還是不多見的。對我們來說,再使用JDBC原始調(diào)用似乎難以下咽,再用JavaBean包裝又有點返古,于是我又開始了網(wǎng)上的搜尋歷程。余秋雨先生有《文化苦旅》,咱這也算是《編程苦旅》了,呵呵,苦笑。

從網(wǎng)上的資料來看,我的這些經(jīng)歷也是很多Java開發(fā)同仁的共同經(jīng)歷,無論是國內(nèi)還是國外,不過從實際情況來看,國外的研究更深入更廣泛一些,至少從網(wǎng)上所能找到的資料來說是這樣。美國從八十年代起就開始研究面向?qū)ο蟮臄?shù)據(jù)庫ODBMS,目前已有一些成形的產(chǎn)品,比如Versant公司的Versant數(shù)據(jù)庫,F(xiàn)astObjects公司的FastObjects t7數(shù)據(jù)庫,以及其它一些相對市場份額小一些的諸如ObjectStore等公司的產(chǎn)品,當然,也不乏一些免費的產(chǎn)品,如Orient等等。總的來說,ODBMS盡管擁有面向?qū)ο蟮膬?yōu)點,但由于歷史原因,在與關系數(shù)據(jù)庫RDBMS的競爭中始終處于下風,基于RDBMS的應用還是占絕大多數(shù),因此,出現(xiàn)了Object-Relational映射的一些工具,前面提到的Castor就是近年來出現(xiàn)的一個工具,實際上更早的時候,已經(jīng)有一些成熟、穩(wěn)定的商業(yè)化產(chǎn)品出現(xiàn),比如前一陣被Oracle收購的TopLink,被BEA收購的WebGain等等,比較有名氣的CocoBase等等。

象TopLink這樣的產(chǎn)品我也了解了一下,功能確實強大,性能、穩(wěn)定性都有優(yōu)勢,然而,其同樣強大的價格和古怪的API令我卻步。我很擔心被鎖定在某個產(chǎn)品上面,無法脫身,眾所周知,Java給我們的就是一種自由的感覺,自由,永遠是那么地吸引人。

出路在哪里?JDO浮現(xiàn)在我眼前。

(未完待續(xù))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 洪洞县| 郧西县| 巧家县| 临颍县| 正蓝旗| 青神县| 焦作市| 新乡县| 星座| 榆社县| 鹰潭市| 台州市| 宁陵县| 石渠县| 大名县| 资中县| 光山县| 通州区| 永平县| 岚皋县| 阳原县| 田阳县| 台北市| 扬州市| 揭阳市| 乌兰县| 鸡西市| 来凤县| 清苑县| 阿拉善盟| 遂溪县| 醴陵市| 胶南市| 定州市| 富顺县| 江山市| 长沙市| 昭觉县| 若尔盖县| 屯门区| 柞水县|