Hibernate原生API簡單分析
在向大家詳細介紹Hibernate原生API之前,首先讓大家了解下TopLink,然后全面介紹Hibernate原生API。
TopLink是一個老牌的 O/R Mapping軟件了,自從被Oracle收購之后,又增加了對Oracle數據庫的良好支持,和對Oracle AS EntityBean的支持。Oracle提供了TopLink的圖形設計環境,可以使得設計好的TopLink域模型既可以被單獨用在TopLink 中,也可以被用在EJB CMP中。因此看來TopLink也走了一條和Hibernate同樣策略的路。
TopLink的問題在于相比Hibernate的開源和免費的優勢來說,TopLink既不開源,售價又不菲上。本來商業軟件TopLink應該在技術支持和商業宣傳策略上擁有足夠的優勢,然而Oracle公司畢竟是一個以數據庫為核心產品的公司,其他的一切產品都是為了數據庫銷售業績而服務的。在Oracle產品線中處于一個從屬地位的TopLink,由于先天不足,只能眼睜睜看著Hibernate的日益壯大而無所作為,因此 TopLink更多的被局限在購買了Oracle數據庫,并且綁定Oracle數據庫的用戶群體中。
J2EE1.5的新持久層規范將毫無懸念的成為未來持久層框架的主流API,無論是Hibernate,JDO,還是TopLink終將兼容這個主流商業API.在當前的這三種持久層API當中,Hibernate無疑是最有前途的。這是因為:
1、新的持久層規范將基于EJB3.0 EntityBean規范,這意味著仍將以Hibernate的設計理念為基礎。
2、JBoss對EJB3.0規范跟隨的步伐非常緊密,在規范制定過程中就不斷的發布參考實現產品,因此可以對對EJB3.0規范產生比較大的影響力。
綜上所述,我們有理由對Hibernate的前途抱有強烈的信心。
最后的一個疑問是,既然J2EE1.5的新持久層框架可以脫離J2EE容器運行,那么大家不全部都去用Hibernate的后一套兼容API,而完全放棄Hibernate原生API了嗎?那么是否意味著Hibernate做為一個獨立產品的使命徹底終結呢?
對于這個問題我的看法是:J2EE1.5的持久層規范要綜合各個EJB Vendor,JDO Vendor的意見,要平衡他們之間的利益得失,那么這樣一個瞻前顧后的規范必然無法覆蓋所有應用場合的全面需要,這不像Hibernate原生API 可以隨時根據開發人員的要求增加功能那么靈活。因此我預計Hibernate原生API以其更加強大的功能仍然會吸引一大批人直接使用原生API,而不是兼容J2EE規范的API.
總而言之,對于我們當前的持久層開發來說,最好的辦法莫過于堅定的使用DAO層來隔離持久層和業務層邏輯,那么不管未來持久層風云如何變換,但凡基于POJO的持久層框架都可以被我們拿來任意替換。
【編輯推薦】