我正在开始一个我认为会持续数年的新项目。我正在决定要使用的 ORM 框架(或是否使用一个)。任何有经验的人都可以告诉我在现实世界的应用程序中是否使用了 orm 框架。我想到的问题是:当我创建和修改我的实体时,orm 工具将为我生成表和列等。但是,在项目上线并投入生产后,将无法进行某些数据库更改。这会不会阻碍项目的推进。例如,如果我使用像 ibatis 这样的框架,我知道我只需要根据数据库的变化调整 sql 语句。谁能告诉我 ORM 工具是否在现场环境中幸存下来。在我的办公室,我们使用很久以前完成的基于 Java 的 ERP,并且从未使用任何 ORM 框架完成。
问候。 乔希
最佳答案
仅将自动生成的架构用于早期开发和原型(prototype)制作。生成的 DDL 几乎永远无法满足任何有经验的 DBA。此外,数据库将比当前的应用程序代码生命周期更长,因此花时间设计它通常是值得的。
在选择映射器时,请选择灵活的映射器,并远离对象痴迷的映射器,因为它们通常只支持有限的数据库定制。想到 Hibernates 糟糕的存储过程集成,JPA 缺乏对自定义类型映射器的支持。
像 IBatis 和 EclipseLink 这样的对象映射器是安全的选择,因为它们允许您映射几乎任何东西,确保您可以创建出色的领域模型和漂亮的模式设计.另请注意,Spring JDBC 已经取得了长足的进步(尤其是非常方便的 SimpleJDBCTemplate ),因此虽然从技术上讲它不是 ORM,但它确实允许您做任何您想做的事情而无需编写乏味的 JDBC 样板代码.
关于java - 现实世界中的 ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2673732/