过去我们通过存储过程访问数据库。它们被视为管理数据的“更好”方式。我们将数据保存在数据库中,任何语言/平台都可以通过 JDBC/ODBC/等访问它。
然而,近年来,基于运行时反射/元数据的存储检索机制(如 Hibernate/DataNucleus)变得流行起来。最初我们担心它们会很慢,因为涉及额外的步骤(反射很昂贵)以及当我们只需要一个字段时它们如何检索不必要的数据(整个对象)。
我开始计划一个使用 J2EE 的大型数据仓库项目,但我有点不确定是选择存储过程还是 JDO/JPA 等。最近,我一直在使用 Hibernate,老实说,我不会错过编写 CRUD 存储过程的机会!
它基本上归结为:
存储过程
+ 可以在服务器上进行优化(尽管只有查询)
- 可能有超过一千个存储过程:每个表的添加、删除、更新、getById 等。
JDO
+ 我不会在接下来的几个月里写 parameters.add("@firstNames", customer.getFirstName()); ...
- 会比 SP 慢(但大多数支持分页)
在我的情况下,你会为了什么而丰满。在这种情况下,我认为这非常重要。
谢谢,
约翰