我正在使用 jOOQ 执行任意 SQL 查询。我这样做如下:
String result = create.fetchSingle("SELECT ...").getValue(0, String.class);
此查询总是返回一行和一列,因此使用了 fetchSingle
和 getValue(0, T)
。我找不到将两者结合起来的方法。
我现在想将命名参数传递给该查询。该参数在多个地方使用,所以我认为在这里使用命名参数是一个很好的用法。该参数的类型为字符串数组。
我该怎么做?如何在查询中引用该参数?在 JDBC 中,我会编写 :name_of_parameter::text[]
。
最佳答案
您要查找的 API 是 DSLContext.fetchSingle(String, Object...)
,它接受带有参数占位符的 SQL 字符串,以及实际的绑定(bind)。
但是,它不支持命名参数,仅支持索引参数,因此您必须多次重复该值,例如
create.fetchSingle("SELECT 'a' WHERE ?::text[] = ?::text[]", value, value)
.getValue(0, String.class);
关于sql - 我可以在 jOOQ SQL 执行器中使用命名参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50288526/