java - Oracle程序转java批处理

标签 java spring oracle hibernate jdbc

我有一个大约 2000 行的 Oracle 过程,其中包含大量插入、更新、连接、选择,以及大量“插入到具有多个复杂连接的选择”,我想将其转换为 java 批处理。我有多种选择来完成这件事。

  1. 普通 JDBC
  2. Spring JDBC 模板
  3. hibernate
  4. 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/

相关文章:

java - 为什么反编译apk后类名和对象都是字母

java - getText() 总是从动态创建的 Chip 组件返回空字符串?

java - 什么是NullPointerException,我该如何解决?

spring - 使用 tukey,当特定参数存在时从 url 中删除所有查询字符串参数

java - Spring MVC,不可选择元素列表的表单控件

java - 来自比较器的未处理异常类型 ParseException

java - 未找到 Spring-data-elasticsearch Maven 依赖项

mysql - 甚至显示学期时出现此错误

java - select count() 返回耗尽的结果集

mysql - 为什么 Oracle 不能在 order by 子句中选择语句的真实性