参数类型
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
绑定值或绑定参数在不同的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可能会覆盖此设置。
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的声音!