0

我正在处理具有大量事务和复杂查询的多个数据库,例如 MSSQL 服务器和 PostgreSQL。我搜索过简单的 jdbc 比 ORM 更快。我正在考虑使用 ORM,因为我不想为相同的工作为不同的数据库编写不同的查询,也不想为了标准化我的 dao 层。我在不使用外键的情况下映射我的数据库表,对于像 apache cayenne 这样的 ORM,我必须映射具有外键约束的表,所以我可以使用我的 Joins 或任何其他多表操作。用ORM好还是简单的jdbc好。

4

1 回答 1

0

从您的问题描述中,您已经了解所涉及的权衡。因此,这确实是您需要根据这些权衡为自己做出的决定。

我在这里唯一的建议是重新审视性能要求。虽然 ORM 确实引入了创建、存储和管理对象的开销,但在除少数情况外,您可以放心地忽略此开销,以实现更好的抽象。此外,在经常使用 JDBC 时,您最终会编写自己的代码来将 ResultSet 转换为对象,这将遇到自己的开销。因此,您可能不会以更快的代码结束,同时丧失干净对象模型和管理它的框架的所有好处。

所以我自己的偏好是使用更好的抽象(在这种情况下为 ORM),然后使用框架工具来优化性能。例如,为了加快大型 ResultSets 的处理,Cayenne提供了一些技术:结果迭代器、DataRow 查询、分页查询等。

另一方面,当无法将数据清晰地建模为实体时,我会使用 JDBC 或MyBatis之类的东西。例如,当没有自然关系时,所有访问都通过存储过程等发生。但看起来不像你的情况。

于 2015-09-26T17:36:29.970 回答