??? Apache Cayenne 是一個(gè)強(qiáng)大而易于掌握的 Java? ORM 框架。它是開源且完全免費(fèi)的。Cayenne 提供了 Java 對(duì)象到關(guān)系型數(shù)據(jù)庫的持久化映射管理,單方法調(diào)用查詢和更新(包括細(xì)粒度的更新所有被修改的對(duì)象),無縫隙的把多種數(shù)據(jù)庫集成到單一虛擬數(shù)據(jù)源中。Cayenne 由 CayenneModeler 分配——完整的 GUI 映射工具。Cayenne 已被成功部署在高負(fù)載的生產(chǎn)環(huán)境中。??? ??? 在吸取了廣大用戶的建議的基礎(chǔ)上發(fā)布了 1.2 版本。這個(gè)版本中最重要的新特性是“遠(yuǎn)程對(duì)象持久化(Remote Object Persistence)”,就是把 Cayenne 轉(zhuǎn)變成一個(gè)獨(dú)立的數(shù)據(jù)服務(wù)器,以便遠(yuǎn)程應(yīng)用能訪問。目前,僅僅用于 Java 客戶端程序(常常用于 Swing 或 SWT“富客戶端”應(yīng)用),但開發(fā)者計(jì)劃將客戶端用其他語言來實(shí)現(xiàn)。ORM-到-WS 把熟悉的 ORM 世界提供給遠(yuǎn)程客戶端。即關(guān)系的延遲粒度、本地緩存、數(shù)據(jù)請(qǐng)求、單方法調(diào)用多對(duì)象的提交、等等。也就是服務(wù)器和客戶端層共享同樣的抽象對(duì)象模型和相同的 Cayenne 持久 API。??? ??? Cayenne 最早由幾名程序員在 2001 年的亞特蘭大構(gòu)思。這個(gè)項(xiàng)目目的在于構(gòu)建一個(gè)開源的 ORM 框架(當(dāng)時(shí)還沒有這樣的產(chǎn)品),最初的設(shè)計(jì)靈感源于 NeXT/Apple 企業(yè)對(duì)象架構(gòu)(Enterprise Objects Framework,EOF)。在 2002 年的秋天,Cayenne 1.0 alpha 版成功地在 NHL.com 網(wǎng)站(全國曲棍球聯(lián)合會(huì))上運(yùn)用。第一個(gè)官方穩(wěn)定版在 2003 年 9 月發(fā)布。從那以后,Cayenne 就在全球大大小小的組織(譯注:這些機(jī)構(gòu)、組織的網(wǎng)站)上部署。2006 年春,Cayenne 被接納為 Apache 軟件基金會(huì)孵化器項(xiàng)目,并立志成為 Apache 項(xiàng)目(譯注:也許是指和 iBATIS 一樣)。??? ??? 在了解了 Cayenne 的前世今生后,來聽聽用戶的聲音。??? ???? “我們使用 Cayenne 已經(jīng)有 6 個(gè)月了,基于這個(gè)框架構(gòu)建了多個(gè) web 應(yīng)用,發(fā)現(xiàn)它是一種生產(chǎn)效率很高的工具。基于 Cayenne 建模和開發(fā)是非常神奇的事情。你可以創(chuàng)建新表或更新已存在的表,接著點(diǎn)擊很少的按鈕你的數(shù)據(jù)庫就構(gòu)建好了,所有類也生成了。在進(jìn)行程序快速開發(fā)時(shí),這一分鐘的持久化變動(dòng)是非常有效率的。下面我把 Cayenne 1.2 和 Hibernate 3.0 做一比較:Cayenne 是更有生產(chǎn)力的工具集,主要是由于它的數(shù)據(jù)庫生成和代碼生成特性上,用戶無需書寫和維護(hù) XML 映射文件。而 Hibernate 有著更加強(qiáng)大的查詢語言。Cayenne 的設(shè)計(jì)更加適合 web 應(yīng)用程序。對(duì)于 ThreadLocal 和 HttpSession 的支持,事務(wù)模式以及連接池都可以直接拿來就用。如果是 Hibernate 的話,用戶必須自己找這些插件或者利用 Spring 對(duì) Hibernate 的支持。Cayenne 的 DataObjects 一直都處于連接狀態(tài),無需遭受 Hibernate 的“l(fā)azy initialization exception”之苦。Hibernate 更好的支持了 PK 和 FK 設(shè)計(jì)的關(guān)聯(lián)數(shù)據(jù)表。如果用戶遵循設(shè)計(jì)模式,在 Cayenne 中也可以直接用 PK 代理。”??????????????????????????????????????????????????????????????????????????????????????????????????? —— Malcolm Edgar????? ??? “我想最好的特性是無需關(guān)閉數(shù)據(jù)庫連接或會(huì)話。如果我使用 Hibernate,我必須手工關(guān)閉會(huì)話(我沒用 springframework),這樣太繁瑣了,而且容易誤操作。換成 Cayenne 的話,我無需關(guān)心數(shù)據(jù)庫連接或 JDBC 異常。”??????????????????????????????????????????????????????????????????????????????????????????????????? —— lyo Yashnoo??? ??? “我用 Cayenne 差不多一年半了,我想說的是真的太好了!建模工具很強(qiáng)大并且架構(gòu)也非常成熟、高效!”??????????????????????????????????????????????????????????????????????????????????????????????????? —— Pedro Costa請(qǐng)注意!引用、轉(zhuǎn)貼本文應(yīng)注明原作者:Rosen Jiang 以及出處:http://www.tkk7.com/rosen
Powered by: BlogJava Copyright © Rosen