首页 > 解决方案 > 用于相同目的的 JDBC 和 Hibernate?

问题描述

由于两者都用于与数据库交互,它们是否用于相同目的。请详细解释。

标签: javahibernatejdbc

解决方案


tl;博士

Hibernate 是在 JDBC 之上编写的众多框架之一,旨在使您的应用程序更容易使用 JDBC 与数据库交换数据。

JDBC

JDBC是将 Java 应用程序连接到关系数据库的标准方法。

  • 您将 SQL 命令编写为 JavaString对象中的文本。JDBC 将该命令传送到数据库。
  • 数据库报告的任何错误都会被 JDBC 包装为对象并返回给您的 Java 应用程序。
  • 如果您的 SQL 在数据库中成功运行,则 JDBC 从数据库中检索结果,并将该数据作为结果集提供给您的 Java 应用程序。

您可以直接从自己的 Java 代码中自己调用 JDBC 命令。很多人都这样做。

建立在 JDBC 之上的框架

但是,编写 SQL 代码并检索结果可能会使编码变得乏味。很多人编写了许多 Java 框架来帮助生成嵌入式 SQL 代码和检索结果。这些框架是在 JDBC 之上编写的,代表您进行 JDBC 调用。许多人使用这些。

其中一些框架实现了标准中定义的接口。Jakarta Persistence,以前称为Java Persistence API (JPA),是一个非常流行的标准。见规范。另一个这样的标准是Java 数据对象 (JDO)

Hibernate是 Jakarta Persistence 的一个实现。其他实现包括EclipseLink OpenJPA等。请参阅什么是 JPA 实现?. 请注意,这些实现可能会提供超出标准要求的功能。

请注意,包括 Hibernate 在内的所有这些框架都使用 JDBC。您必须提供特定于特定数据库引擎的JDBC 驱动程序才能使用这些框架,例如 Hibernate。

已经在标准之外产生了其他框架。有些非常流行,例如 JOOQMyBatisSpring Data

而且我们有同样使用 JDBC 的数据库迁移工具,例如FlywayLiquibase


推荐阅读