sql - jooq sql builder输出给出“?” 在 WHERE 子句中的 eq()
问题描述
我在这里复制示例代码:
整个代码块看起来像这样
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.jooq.DSLContext;
import org.jooq.SQLDialect;
import static org.jooq.impl.DSL.*;
public static String sampleSql() {
DSLContext create = DSL.using(SQLDialect.MYSQL);
String sql = create.select(field("BOOK.TITLE"), field("AUTHOR.FIRST_NAME"), field("AUTHOR.LAST_NAME"))
.from(table("BOOK"))
.join(table("AUTHOR"))
.on(field("BOOK.AUTHOR_ID").eq(field("AUTHOR.ID")))
.where(field("BOOK.PUBLISHED_IN").eq(1948))
.getSQL();
return sql;
}
的输出sampleSql()
是
select BOOK.TITLE, AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME from BOOK join AUTHOR on BOOK.AUTHOR_ID = AUTHOR.ID where BOOK.PUBLISHED_IN = ?
但是为什么问号“?”,问号应该是1948。我错过了什么?
解决方案
getSQL()
用 ? 返回准备好的语句 作为参数占位符。
如果要内联必须调用的参数:
getSQL(ParamType.INLINED);
请在此处找到 API 文档:https ://www.jooq.org/javadoc/latest/org.jooq/org/jooq/Query.html
推荐阅读
- flutter - Flutter 从父级调用子状态方法
- javascript - 将承诺分配给变量并在链中返回与仅返回承诺调用不同吗?
- php - Html 表单 - 有没有办法在 &#xHHHH; 之间进行选择 和 &#DDDD; 格式?
- mysql - 我的续集表没有生成主键
- android - 如何将一种语言资源文件用于多种语言?
- jenkins - 无法从 Mac 连接到 CentOS VM -(设置 Jenkins 管道)
- twig - Twig 不会替换子模板中的块
- html - 是否有一种简单的解决方案可以快速解析 html 以将单个元素放入自己的变量中?
- flutter - NoSuchMethodError:在 null 上调用了 getter 'cls'
- excel - 如何使用 VBA Excel“另存为”特定范围?