这是我第一次使用 JDBCTemplates,我遇到了一个需要使用如下查询的情况:
SELECT * FROM table WHERE field IN (?)
我怎么做?我已经尝试传递一个列表/数组值,但没有成功,我得到一个异常。我当前的代码如下所示:
Long id = getJdbcTemplate().queryForLong(query, new Object[]{fieldIds});
Spring 文档 指出,除了生成所需数量的“?”之外,没有其他方法可以做到这一点。占位符以匹配参数列表的大小。有解决方法吗?
原文由 Chepech 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为您不能将其作为单个“?”来执行。它与 Spring JDBC 模板无关,它是核心 SQL。
您必须根据需要为其中的任意多个构建一个 (?, ?, ?) 。