2015-09-26 82 views
0

我正在处理多个数据库,如MSSQL服务器和PostgreSQL的繁重的交易和复杂的查询。我搜索了简单的jdbc比ORM更快。我正在考虑使用ORM,因为我不想针对同一工作为不同的数据库编写不同的查询,并且为了标准化我的dao层。我正在映射我的数据库表而不使用外键,而对于像apache卡宴这样的ORM,我必须使用外键约束映射表,所以我可以使用我的连接或任何其他多表操作。它是好的使用和ORM或简单的jdbc是好的。哪个更好ORM(Apache Cayenne),JDBC还是SpringJDBC?

回答

0

从你的问题描述中,你已经理解了所涉及的折衷。所以这是一个真正的决定,你需要根据这些权衡来为自己做出决定。

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

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

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

相关问题