ORM:是或否?

ATo*_*ras 7 java orm

我必须用Java开始一个中型项目,但我不是一般的ORM的粉丝所以问题是:我是否应该考虑ORM设计项目(供以后使用)?

该RDBMS是Oracle 10g和查询将非常耦合到甲骨文语法/功能(即文本,挖掘,CONNECT BY,等...).

非常感谢.

Aar*_*paa 10

您可能希望查看此前讨论ORM优势的问题:使用ORM有哪些优势?

最相关的部分(取自已接受的答案):

如果你有复杂的,手动调整的SQL,那么使用ORM并没有多大意义.

如果你不断地通过ORM并编写自己的SQL,那么ORM可能最终会阻碍它.

  • @johnny:有许多数据相关的问题需要手动调整/创建的sql才能有效解决.此外,当您可以使用特定数据库服务器的高级功能时,通常可以更有效地解决这些问题. (3认同)

Car*_*ist 5

由于我不允许评论你的帖子Ill评论这样(缺乏积分).

对于你不喜欢ORM的讨论会有好处.

伊莫,我会去的.如果你由于某种原因找到一个ORM缓慢的查询,那么我会自己做.仅仅因为你使用ORM大多数任务并不意味着你必须使用它.但是,是的,这将是首选.


Geo*_*old 5

我个人已经发现它们(好吧,Hibernate)是一个令人难以置信的时间下沉.我花了太多时间试图找出它实际上在幕后做了什么,而不是节省时间.正如其他人所提到的,如果您的数据模型增长超过一定的复杂性,那么在您和数据库之间建立另一层就会产生更多的摩擦.如果您的数据模型不那么复杂,那么您无论如何都不需要ORM.

建议有某种抽象,让SQL出你的Java代码,但可以简单地用一个DAO层和属性文件或什么来完成.此外,像IBATIS或Spring JDBC这样的工具也很有帮助,因为您仍然可以编写自己的查询,并且只需使用框架来帮助处理JDBC和Model对象之间的数据混乱的所有样板代码.

PS:有趣的旁注.在我的办公室,我们实际上有一张Gavin King的框架图片,我们都在诅咒肖像."嘿,轮到处理今天的Hibernate问题了,所以这是Gavin." :-)