2012-05-17 56 views
0

我正在研究Java EE應用程序,並使用Spring作爲框架。 現在我已經看到有人談論ORM框架(Hibernate/JPA/iBatis ...),但我不知道使用這些框架的原因是什麼?在Java EE中使用持久性框架的原因是什麼?

我的意思是這些框架將改變項目功能&的性能?

如果你能給我一個清晰的例子,它會很棒。

+0

首先,它不是「現在......人們在談論ORM」。它在這裏已經有很多年了。參考 'http://stackoverflow.com/questions/4667906/the-advantages-and-disadvantages-of-using-orm' –

回答

0

由於您將通過爲整個Java對象編寫SQL插入/更新/選擇語句並在對象更改時保持對象的形狀爲< - > SQL代碼而感到無聊。 JPA實際上是Java EE標準的一部分。

但是,它將而不是提供任何手段,讓你不知道你在做什麼與數據庫,除了非常簡單的情況。我的經驗是,任何JPA框架都會增加性能問題跟蹤和調試的複雜度。最終,您可能最終需要了解JPQL(JPA的SQL-ish語法)如何轉換爲每種JPA提供程序(OpenJPA,HIbernate,eclipse link ..)和數據庫實現組合的SQL。這將是不重要的。

如果您沒有具體的性能要求,只想簡單的對象持久性,就放手吧! Hibernate似乎是最先進的技術。

0

避免爲所有事情編寫自己的SQL,並[部分]橋接對象關係海灣(「深淵」)。

對於簡單的需求,ORM非常棒,並且考慮一些數據庫的東西會消失 - 但需要注意的是,您仍然需要了解數據庫實際發生的情況,以防止嚴重的性能影響。

對於複雜的需求,你將會學會理解爲什麼他們稱ORM爲「計算機科學的越南」......「我們已經吸取了越南的教訓......不要去越南。」