可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

jOOQ 作为进行代码生成的 SQL 构建器

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

除了将 jOOQ 用作独立的 SQL 构建器之外,您还可以使用 jOOQ 的代码生成功能,以便使用 Java 编译器针对实际数据库模式编译 SQL 语句。这增加了仅使用查询 DSL 和自定义字符串和文字构建 SQL 的强大功能和表达能力,因为您可以确保所有数据库工件实际存在于数据库中,并且其类型正确。 我们强烈建议使用这种方法。 这里给出一个例子

// Fetch a SQL string from a jOOQ Query in order to manually execute it with another tool.
Query query = create.select(BOOK.TITLE, AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME)
                    .from(BOOK)
                    .join(AUTHOR)
                    .on(BOOK.AUTHOR_ID.eq(AUTHOR.ID))
                    .where(BOOK.PUBLISHED_IN.eq(1948));

String sql = query.getSQL();
List<Object> bindValues = query.getBindValues();

然后可以使用 JDBC 直接、使用 Spring 的 JdbcTemplate、使用 Apache DbUtils 和许多其他工具执行使用 jOOQ 查询 DSL 构建的 SQL 字符串(请注意,由于 jOOQ 默认使用 java.sql.PreparedStatement,这将为“1948”生成一个绑定变量。 在此处阅读有关绑定变量的更多信息)。

您也可以避免分别获取 SQL 字符串和绑定值

String sql = query.getSQL(ParamType.INLINED);

如果您希望仅将 jOOQ 用作带有代码生成的 SQL 构建器,则您会对本手册的以下部分感兴趣

  • SQL 构建:本节包含大量关于使用 jOOQ API 创建 SQL 语句的信息
  • 代码生成:本节包含针对您的开发人员数据库运行 jOOQ 代码生成器所需的必要信息
  • 绑定值:本节介绍了如何在 jOOQ 中管理和/或内联绑定值。

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo