gpt4 book ai didi

spring - 使用spring jdbc模板查询参数列表

转载 作者:行者123 更新时间:2023-12-04 19:52:51 26 4
gpt4 key购买 nike

Spring JDBC 模板的新手,但我想知道是否能够传递参数列表并对列表中的每个参数执行一次查询。正如我看到的许多示例,传递的参数列表用于使用提供的所有参数执行查询。相反,我试图多次执行查询,并且每次都使用列表中的新参数。

例如:
假设我有一个 Id 列表 - 参数(字符串)

List<String> params = new ArrayList<String>();
params.add("1234");
params.add("2345");

尝试做类似的事情:
getJdbcTemplate().query(sql, params, new CustomResultSetExtractor());

我知道根据文件是不允许的。我的意思是,它必须是一个数组。我见过简单的例子,其中查询类似于 "select * from employee where id = ?"他们正在路过 new Object[]{"1234"}入方法。我试图避免 IN() 条件。在我的情况下,每个 id 将返回多行,这就是我使用 ResultSetExtractor 的原因。

我知道一种选择是迭代列表并将列表中的每个 id 作为参数包含在内,例如:
for(String id : params){
getJdbcTemplate().query(sql, new Object[]{id}, new CustomResultSetExtractor());
}

只是想知道我是否可以通过其他方式做到这一点。对不起,我应该提到我正在尝试做一个选择。最初希望为每个结果集返回一个自定义对象列表。

最佳答案

您确实需要为 API 传递一个参数数组,但您也可以假设您的第一个参数是一个数组。我相信这应该有效:

String sql = "select * from employee where id in (:ids)"; // or should there be '?'
getJdbcTemplate().query(sql, new Object[]{params}, new CustomResultSetExtractor());

或者您可以明确指定,该参数是一个数组
getJdbcTemplate().query(sql, new Object[]{params}, new int[]{java.sql.Types.ARRAY}, new CustomResultSetExtractor());

关于spring - 使用spring jdbc模板查询参数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33679975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com