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 构建器,则您会对本手册的以下部分感兴趣
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!