jOOQ - 比较 JDBC 和 jOOQ

在 Java 中,有多种方式可以无缝地与数据库交互。开发人员可以根据应用程序或项目的功能和复杂性从 JDBC、JPA、jOOQ 和许多其他类似技术中进行选择。在本教程中,我们将比较 JDBC 和 jOOQ,以找出两者之间的相似之处和不同之处。

jooq 和 jdbc 之间的比较

什么是 JDBC?

JDBC 的全称是 Java Database Connectivity。它由 Sun Microsystems 于 1997 年开发。它是一个用于连接和执行数据库查询的 Java API。 JDBC 可以与任何数据库一起使用,包括 Oracle、MySQL、MS Access、PostgreSQL 等。

JDBC 为下面提到的每个任务提供单独的 API −

  • 连接到数据库。
  • 创建 SQL 语句。
  • 在数据库中执行 SQL 查询。
  • 查看和修改结果记录。

什么是 jOOQ?

jOOQ 的全称是 Java 面向对象查询。它由 Lukas Eder 于 2010 年开发。jOOQ 的主要用途是用 Java 编写类型安全的 SQL 查询。它借助其代码生成器从数据库表和视图生成 Java 类。与 JDBC 一样,它还支持多种数据库,例如 MySQL、PostgreSQL、Oracle 等。

JDBC 和 jOOQ 之间的相似之处

以下是 JDBC 和 jOOQ 之间的相似之处列表 −

  • JDBC 和 jOOQ 提供了在非结果查询中返回受影响记录数量的机制。在 JDBC 中,这是通过 Statement.executeUpdate() 方法实现的,而在 jOOQ 中,Query.execute() 方法具有相同的用途。
  • 从数据库检索数据时,这两个 API 都会从结果查询中返回可滚动的结果集类型。 JDBC 使用 java.sql.ResultSet,而 jOOQ 使用 org.jooq.Result 来浏览查询返回的数据。
  • 它们支持所有主流数据库,包括 Oracle、MySQL、MS Access、PostgreSQL 等。

JDBC 和 jOOQ 之间的区别

下表显示了 JDBC 与 jOOQ 的不同之处 −

JDBC jOOQ

JDBC 使用已检查的 SQLException。

jOOQ 将异常包装在未检查的 DataAccessException 中。

它需要手动关闭使用的资源。

使用后默认关闭资源。

JDBC 使用基于 1 的 API。

jOOQ 使用基于 0 的索引作为其 API。

对于返回结果的查询和不返回结果的查询,它使用相同的 API。

它区分两者。

JDBC 没有延迟获取功能。

为了更好地控制一次应将多少条记录提取到内存中,jOOQ 使用延迟获取。