淺談使用Hibernate場合
Hibernate有很多值得學習的地方,這里我們主要介紹使用Hibernate場合,包括介紹Hibernate是一個更為傳統的ORM等方面。
使用Hibernate場合
既然Hibernate看起來如此靈活好用,為什么還要使用其他的工具呢?下面有一些場景,可以幫助您做出判斷(或許通過提供一些比較和上下文,可以有助于鑒別非常適用Hibernate的場合)。
如果應用對于數據存儲的需要十分簡單——例如,您只想管理一組用戶優先選擇——您根本不需要數據庫,更不用說一個優秀的對象-關系映射系統了(即使它也如Hibernate這般易于使用)!從Java 1.4開始,有一個標準的Java Preferences API可以很好地發揮這個作用。(在ONJava文章中可以找到有關Preferences API的更多信息。)
對于熟悉使用關系數據庫和了解如何執行完美的SQL查詢與企業數據庫交互的人來說,Hibernate似乎有些礙手礙腳,這就像帶有動力和自動排擋的快艇車會使注重性能的賽車駕駛員不耐煩一樣。如果您屬于這種人,如果您所在的項目團隊擁有一個強大的DBA,或者有一些存儲過程要處理,您可能想研究一下iBATIS。Hibernate的創建者本身就把iBATIS當作是另一種有趣的選擇。我對它很有興趣,因為我們曾為一個電子商務站點開發了一個類似的系統(其功能更為強大),而且從那時到現在,我們已經在其他環境中使用過它,盡管在發現Hibernate之后,在新項目中我們通常更喜歡使用Hibernate。您可以認為,以SQL為中心的解決方案(比如iBATIS)是“反向的”對象/關系映射工具,而Hibernate是一個更為傳統的ORM。
當然,還有其他的外部原因會導致采用另外的方法。比如,在一個企業環境中,必須使用成熟的EJB架構(或者其他的一些非普通對象映射系統)??梢詾樘峁┳约旱臄祿鎯ぞ叩钠脚_量身定做代碼,比如Mac OS X's Core Data。使用的可能是像XML DTD這樣的存儲規范,而它根本不涉及關系數據庫。
但是,如果您使用的是富對象模型,而且想要靈活、輕松且高效地保存它(無論您是否正要開始或已經決定使用關系數據庫,只要這是一個選擇——而且存在可用的優秀免費數據庫,比如MySQL,或可嵌入Java的HSQLDB,它就應該始終是一個選擇),那么Hibernate很可能就是您理想的選擇。您可能會驚訝于節省的時間之多,以及您將會多么地喜歡使用它。 以上介紹使用Hibernate場合。
【編輯推薦】