我有一个大约 2000 行的 Oracle 过程,其中包含大量插入、更新、连接、选择,以及大量“插入到具有多个复杂连接的选择”,我想将其转换为 java 批处理。我有多种选择来完成这件事。
- 普通 JDBC
- Spring JDBC 模板
- hibernate
- Spring JPA
我能够使用简单的纯 JDBC 将过程转换为 JAVA,并且它工作得非常好。我优化了代码,看起来没问题。但我想考虑其他替代方案,例如使用 Hibernate 或 JDBC 模板。只需要关于在 hibernate 上重写它的建议和评论。您建议使用纯 JDBC 还是选择任何 ORM 框架? 选择 Hibernate 或 JDBCtemplate 的优点或缺点? Hibernate 是否适合复杂的连接和“插入选择”?
最佳答案
这些问题没有是/否答案。建议您使用以下链接进行分析: Spring-JDBC-JPA vs Hibernate
这是关于分析如果您使用像 Hibernate 这样的 ORM 而不增加复杂性,关系模型是否可以用 OO 模型表示。如果关系模型很复杂,建议使用 Spring JDBC 和原生 SQL。 Spring JDBC 处理样板问题,例如打开/关闭数据库连接、异常处理等,这些问题需要您在普通的旧 JDBC 世界中处理。
如果您需要控制 SQL,因为您提到了复杂的联接,最好编写 native SQL。如果您确实确定关系模型已正确转换为健壮的 OO 模型,并且您确信 hibernate 生成的 SQL 已根据您的外键映射进行了优化,那么请使用 hibernate。当然,Hibernate 有许多其他 ORM 所没有的便利功能。同样,这与您想要将控制权转移到开发人员或框架的位置有关。这些是我的拙见。
如果我遗漏了什么,请纠正。
我没有从事过 JPA 工作,因此其他开发专家可能会对此发表评论。
关于java - Oracle程序转java批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60718868/