JDBC 和 Hibernate 用于相同目的?

Vee*_*hil 0 java hibernate jdbc

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

Bas*_*que 5

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,如迁徙路线Liquibase

  • @MarkRotteveel 这就是我的全部观点,但不知何故我没有明确说出来。所以谢谢你的评论。我修改了答案。 (2认同)