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