2012-05-17 49 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为“计算机科学的越南”......“我们已经吸取了越南的教训......不要去越南。”