📜  Hibernate – ORM 和 JDBC 的区别

📅  最后修改于: 2022-05-13 01:55:28.399000             🧑  作者: Mango

Hibernate – ORM 和 JDBC 的区别

Hibernate 是一个框架,用于开发独立于数据库软件的持久性逻辑。在 JDBC 中开发持久性逻辑,我们处理原始类型。而 Hibernate 框架我们使用对象来开发独立于数据库软件的持久性逻辑。

ORM(对象关系映射)

ORM 是 Object-relational mapping 的缩写,是一种通过元数据描述符将对象代码连接到关系数据库的编程方法。此对象代码是用Java、 Python、C++、C# 等面向对象编程 (OOP) 语言开发的。ORM 在关系数据库或 OOP 语言中不兼容的类型系统之间转换数据。换句话说,它是一种在关系(表)数据库中存储、恢复、更新以及从面向对象程序中删除的技术。现在让我们首先了解术语目标代码。

什么是目标代码?

目标代码被定义为计算机可以理解的低级代码。它是由编译器使用源代码生成的。换句话说,它是由编译器生成的文件,其中包含二进制数字形式的机器指令。

ORM的优点:

  • 解决目标代码和关系不匹配问题
  • 使用 ORM,开发过程非常简化,因为它可以自动执行对象到表和表到对象的转换,从而降低开发和维护成本
  • 与嵌入式 SQL 相比,代码更少
  • 提供优化的解决方案,可实现更快的应用和更轻松的维护。

JDBC(Java数据库连接)

JDBC 是Java数据库连接的缩写。它是标准 API 的 JavaSoft(曾经是 Sun Microsystems 的一个部门,负责开发Java和许可使用 JVM)规范,允许Java程序访问数据库管理系统。 JDBC API 是一组Java接口和类,允许您连接到数据库并发送查询。 JDBC 的这个 API 使用 JDBC 的驱动程序来与数据库连接。有四种类型的 JDBC 驱动程序:

  • JDBC-ODBC 桥加 ODBC 驱动(Type 1 驱动)
  • 本机 -API,部分是Java驱动程序(Type 2 驱动程序)
  • JDBC-Net,纯Java驱动程序(Type 3 驱动程序)
  • 本机协议、纯Java驱动程序(Type 4 驱动程序)

JDBC的优点:

  • 它有助于快速建立与数据源的连接。
  • 它允许您提交查询和更新语句。
  • 它还允许您从数据库中收集数据并以非常简单的方法处理结果。

我们还可以使用处理数据库所需的 JDBC API 执行大量活动:

  • 连接到数据库
  • 执行查询和更新数据库的语句
  • 检索从数据库中获取的结果

ORM 和 JDBC 的区别

与 JDBC 相比,ORM 更易于使用,因为它自己完成所有工作。它通过 XML 将Java类映射到数据库变量。在处理领域驱动的应用程序和复杂对象关系的情况下,ORM 是首选,但当应用程序足够简单时,最好使用 JDBC。

Object Relational Mapping

Java Database Connectivity

Little slower than JDBC It is faster compared to ORM
SQL queries requirement is comparatively quite less however this doesn’t mean that you have to do less work using ORMSQL queries are required here
Hibernate framework (working on ORM technology) makes it easy to store objects/data to database automatically without writing manual codeWe have to write code manually to store objects/ data in the database
The flow from Object/data to hibernate i.e. the frontend part is based on the ORM technique Whereas when the data is stored in the database finally i.e., the backend part is still based on JDBCin
There are not many restrictions while dealing with data. Even a single database cell can be retrieved, changed, and saved.JDBC comes with a lot of restrictions on extracting the result-set, processing it, and then committing it back to the database.