Oracle開(kāi)放TopLink開(kāi)源的主要原因
Oracle開(kāi)放TopLink開(kāi)源的主要原因是不得不的事情,如果Oracle開(kāi)放TopLink開(kāi)源早些開(kāi)源的話,恐怕現(xiàn)在的ORM界或是整個(gè)持久界的相關(guān)的局面可能就不是現(xiàn)在這樣的了Allen:對(duì)于我來(lái)說(shuō),這意味著將來(lái)使用JPA的時(shí)候又多了一個(gè)非常精良的Provider,不錯(cuò)!
hantsy:要知道,JPA的標(biāo)準(zhǔn)實(shí)現(xiàn)是Oracle開(kāi)放 TopLink,比Hibernate實(shí)現(xiàn)JPA早了半年。。。 TopLink始于1994年,后來(lái)被Oracle收購(gòu),比Hibernate 有資歷得多。。。
Arthas.Hui:當(dāng)初通過(guò)Sun2Bin了解到,有TopLink這個(gè)東東,Java社區(qū)的標(biāo)準(zhǔn)實(shí)際上是取決于其用戶的多少,東西再好,資歷再多,沒(méi)人用也是白搭。
我感覺(jué),從時(shí)間成本上來(lái)說(shuō),TopLink不值得一試,和Hibernate同樣的功能,和Hibernate差不多的學(xué)習(xí)曲線,TopLink我也是大體地看了幾眼,我覺(jué)得,要精通TopLink并不是一件很簡(jiǎn)單的事情吧。與其這樣,不如就拿Hibernate當(dāng)壓寨夫人好了。
TopLink是一個(gè)非常早期的產(chǎn)品,最初面向C++,后來(lái)也實(shí)現(xiàn)了Java的映射。Oracle開(kāi)放TopLink性能優(yōu)異,功能強(qiáng)大,并且提供了獨(dú)特的查詢過(guò)濾器機(jī)制,以及對(duì)關(guān)系的處理和查詢都非常有效,于是,TopLink逐漸從商用化O/R Mapping產(chǎn)品中勝出,成為市場(chǎng)上的最出色的映射產(chǎn)品。也正因?yàn)檫@一點(diǎn),最大的關(guān)系數(shù)據(jù)庫(kù)廠商Oracle將其收購(gòu),成為提供最強(qiáng)數(shù)據(jù)庫(kù)和最強(qiáng)對(duì)象映射中間件的廠商。
TopLink雖然強(qiáng)大,但太強(qiáng)大的東西免不了得意忘形,TopLink開(kāi)始將用戶鎖死到自己的產(chǎn)品上,查詢方式是最突出的。它的查詢體系含有很多別扭的概念(在我看來(lái)是如此),但為達(dá)到一般O/R產(chǎn)品不能達(dá)到的功能,開(kāi)發(fā)者只能接受這些。慢慢地,也產(chǎn)生積怨,再加上其高昂的價(jià)格,讓很多新老用戶望而卻步。于是,免費(fèi)的產(chǎn)品開(kāi)始崛起。
免費(fèi)的O/R Mapping工具有很多種,這里只提其中最有影響力的兩種:Castor和Hibernate。
Castor是Exolab組織開(kāi)發(fā)的面向Java的包裝工具,它最大的特色就是實(shí)現(xiàn)了大部分的ODMG OQL規(guī)范,在查詢上,可以象完全使用一個(gè)對(duì)象數(shù)據(jù)庫(kù)一樣類圖進(jìn)行查詢(后面會(huì)有介紹)。它的原理是通過(guò)Java反射API去實(shí)現(xiàn)屬性的設(shè)置和讀取。
不過(guò)由于各種原因,Castor后來(lái)的版本更新越來(lái)越慢,最終停步在1.0之前,成為至今未出到1.0正式版的O/R Mapping產(chǎn)品。不管怎么樣,它還是一個(gè)相當(dāng)不錯(cuò)的產(chǎn)品。
Hibernate是一個(gè)現(xiàn)在很火熱的O/R Mapping產(chǎn)品,目前已經(jīng)出到2.0版,它功能一樣強(qiáng)大,同樣使用Java反射API進(jìn)行對(duì)象的設(shè)置,但它的查詢語(yǔ)言就是一套比較獨(dú)特的體系,這一點(diǎn)有點(diǎn)類似Oracle開(kāi)放TopLink,但Hibernate更具有親和力,對(duì)關(guān)系的查詢更方便,只不過(guò)比起Castor來(lái),在方便性和規(guī)范性上還是稍遜一籌。就目前狀況而言,Hibernate的用戶量和技術(shù)支持要強(qiáng)一些。
文章出自: http://soft.zdnet.com.cn/software_zone/oracle-sqlserver.shtml
【編輯推薦】
- Oracle數(shù)據(jù)語(yǔ)言的4大類
- Oracle 8i中字符集亂碼問(wèn)題詳細(xì)解析
- Oracle數(shù)據(jù)庫(kù)的系統(tǒng)中6個(gè)經(jīng)驗(yàn)原則
- 存儲(chǔ)結(jié)構(gòu)之Oracle邏輯存儲(chǔ)結(jié)構(gòu)
- Oracle游標(biāo)的刪除與更新實(shí)際操作步驟