gpt4 book ai didi

java - 参数化查询 : Check if field is in array of values in SELECT statement

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:36:25 32 4
gpt4 key购买 nike

我正在尝试配置参数化查询以达到以下效果:

SELECT field1 FROM myTable WHERE field2 IN (1,2,3,4)

我使用的数据库是 Postgres。

此查询在未参数化的情况下成功运行,但我想使用带有 JdbcTemplate 的参数化查询来填充有效 field2 值(整数)的列表。

var 尝试各种值("1,2,3,4", "[1,2,3,4]""{1,2,3,4}""(1,2,3,4)") 我尝试了查询的变体:

myJdbcTemplate.query("SELECT field1 FROM field2 IN (?)", new Object[]{ var })

myJdbcTemplate.query("SELECT field1 FROM field2 IN (?::integer[])", new Object[]{ var })

还有

myJdbcTemplate.query("SELECT field1 FROM field2 IN ?::integer[]", new Object[]{ var })

附带说明一下,描述如何参数化查询的资源也非常有用。

所有这些查询都会抛出 PSQLExceptions,表明运算符失败或类型不匹配——这似乎是合理的,因为我不知道如何参数化查询。

最佳答案

看看Spring Data Access web page ,特别是第 11.7.3 节在哪里使用 NamedParameterJdbcTemplate涵盖构建“IN”子句。

例如

NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
String sql = "select * from emp where empno in (:ids)";
List idList = new ArrayList(2);
idList.add(new Long(7782));
idList.add(new Long(7788));
Map parameters = new HashMap();
parameters.put("ids", idList);
List emps = jdbcTemplate.query(sql, parameters, new EmpMapper());

关于java - 参数化查询 : Check if field is in array of values in SELECT statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1657622/

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