命名参数
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
一些构建在 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"))));
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!