淺析Hibernate orm框架
Hibernate有很多值得學習的地方,這里我們主要介紹orm框架,包括介紹Spring+Hibernate+范型+可變參數等方面。
Hibernate在解決性能問題方面做得非常好。有了它的緩存機制,使用第三方緩存和數據庫連接池,就較好的解決的性能問題。但這些還不夠,Hibernate給了開發者足夠的自由,讓開發者自己去控制性能問題。
學習了一段時間的ibatis,我覺得Hibernate有著ibatis無法替代的優勢。
1.Hibernate不僅僅作為持久層的orm框架存在,它除了dao層的持久化操作外,還有很多。
在注解annotation已經走向主流的今天,Hibernate 迅速響應,讓xml部署描述符成為可選的。Hibernate annotation 對大字段的處理只是一個@Lob就搞定了。
Hibernate search對Lucene進行了輕量級的封裝,全文檢索變得非常簡單。
Hibernate validator被認為是最合理的驗證方式,將驗證策略直接附在貫穿各層的領域模型domain上,不再需要哪些web框架的xml方式的驗證,代碼中不再出現大量的非空/null的判斷。
2.jbpm, Jbpm業務流程引擎的持久層采用Hibernate來實現,要想使用jbpm,Hibernate是必須的。我想,業務流程管理無比重要,在soa迅速發展的今天,如果實施soa項目,業務流程管理是必然和必須的。因為soa就是業務和it技術的融合,是業務流程管理和it基礎架構的融合。在soa中,業務管理是***位的,這需要相應的技術來實現該業務流程管理。開源領域的jbpm我想會是***。所以,為了將來有可能實施soa項目,為了實現soa的業務流程管理,應該使用Hibernate.
3.大家都知道,Hibernate將ejb2時代的實體bean趕進了歷史,而ejb3的jpa標準也只不過是Hibernate的子集而已。jsr規范請求的威力是巨大的,沒有各種jsr規范請求,就不會有各種應用程序框架,各種應用程序框架只是那些jsr規范請求的實現者。jpa 作為持久層的規范標準,引導持久層orm框架的方向,jpa同樣以面向對象的方式操作數據庫,而不是寫sql語句。規范標準都完全orm,不寫sql了,你還有理由不跟著它嗎?
4.Spring+Hibernate+范型+可變參數,這是一個非常強大的組合,對應普通的crud操作,你不再需要重復寫那些煩人的相似的dao層和manager層的代碼,僅僅需要寫一次,就完成了所有大量的crud操作。Ibatis盡管也支持范型,但始終沒有Hibernate支持的好
【編輯推薦】