jOOQ - JDBC 与 jOOQ 的比较



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

comparison between jooq and jdbc

什么是 JDBC?

JDBC 的全称是 Java 数据库连接。它由 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 对其 API 使用基于 0 的索引。

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

它在这两者之间进行了区分。

JDBC 没有延迟获取的功能。

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

广告