jOOQ - JDBC 与 jOOQ 的比较
在 Java 中,有多种方法可以无缝地与数据库交互。开发人员可以根据应用程序或项目的特性和复杂性,从 JDBC、JPA、jOOQ 和许多其他类似技术中进行选择。在本教程中,我们将比较 JDBC 和 jOOQ,找出两者之间的异同。
什么是 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 使用延迟获取。 |
广告