哪个更好的ORM(Apache Cayenne),JDBC或SpringJDBC?

时间:2015-09-26 14:27:12

标签: jdbc spring-jdbc apache-cayenne

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

1 个答案:

答案 0 :(得分:0)

从你的问题dscription中,你已经了解了所涉及的权衡。所以这真的是你需要根据这些权衡做出的决定。

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

所以我自己的偏好是采用更好的抽象(在这种情况下为ORM),然后使用框架工具来优化性能。例如。加速处理大型ResultSet Cayenne provides a few techniques:结果迭代器,DataRow查询,分页查询等。

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