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

命名参数

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

一些构建在 JDBC 之上的 SQL 访问抽象,或一些绕过 JDBC 的抽象,可能支持命名参数。 jOOQ 也允许您为参数命名,尽管默认情况下这些名称不会呈现为 SQL 字符串。 以下是如何使用 org.jooq.Param 类型创建命名参数的示例

// Create a query with a named parameter. You can then use that name for accessing the parameter again
Query query1 = create.select().from(AUTHOR).where(LAST_NAME.eq(param("lastName", "Poe")));
Param<?> param1 = query.getParam("lastName");

// Or, keep a reference to the typed parameter in order not to lose the <T> type information:
Param<String> param2 = param("lastName", "Poe");
Query query2 = create.select().from(AUTHOR).where(LAST_NAME.eq(param2));

org.jooq.Query 接口还允许直接设置新的绑定值,而无需访问 Param 类型

Query query1 = create.select().from(AUTHOR).where(LAST_NAME.eq("Poe"));
query1.bind(1, "Orwell");

// Or, with named parameters
Query query2 = create.select().from(AUTHOR).where(LAST_NAME.eq(param("lastName", "Poe")));
query2.bind("lastName", "Orwell");

为了在生成的 SQL 中实际呈现命名参数名称,请使用 DSLContext.renderNamedParams() 方法

-- The named bind variable can be rendered

SELECT *
FROM AUTHOR
WHERE LAST_NAME = :lastName
create.renderNamedParams(
    create.select()
          .from(AUTHOR)
          .where(LAST_NAME.eq(
                 param("lastName", "Poe"))));

反馈

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

The jOOQ Logo