参数类型
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
绑定值或绑定参数在不同的SQL数据库中有不同的形式。 JDBC通过仅允许使用?(问号)字符作为绑定变量的占位符来标准化它们的语法。因此,默认情况下,jOOQ会生成?占位符以供JDBC使用。 希望将jOOQ与JDBC以外的其他后端一起使用的用户可以指定所有jOOQ 绑定值,包括索引参数和命名参数生成除?之外的替代字符串。
以下是当前的选项
-
INDEXED(默认):使用?生成索引参数占位符。 -
NAMED:生成命名参数占位符,例如,显式命名的参数使用:param,未命名的索引参数使用:1。 -
NAMED_OR_INLINED:为显式命名的参数生成命名参数占位符,并内联所有未命名的参数。 -
INLINED:内联所有参数。
一个例子
-- INDEXED SELECT FIRST_NAME || ? FROM AUTHOR WHERE ID = ? -- NAMED SELECT FIRST_NAME || :1 FROM AUTHOR WHERE ID = :x -- NAMED_OR_INLINED SELECT FIRST_NAME || 'x' FROM AUTHOR WHERE ID = :x -- INLINED SELECT FIRST_NAME || 'x' FROM AUTHOR WHERE ID = 42
Param<String> x = val("x");
Param<Integer> i = param("x", 42);
DSL.using(configuration)
.select(FIRST_NAME.concat(x))
.from(AUTHOR)
.where(ID.eq(i))
.fetch();
示例配置
Settings settings = new Settings()
.withParamType(ParamType.NAMED); // Defaults to INDEXED
以下设置statementType可能会覆盖此设置。
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的声音!