我想配置参数化查询到的效果:参数化查询:检查是否领域是在SELECT语句中值的阵列
SELECT field1 FROM myTable WHERE field2 IN (1,2,3,4)
我正在使用的数据库是Postgres的。
这个查询运行成功unparameterized,但我想使用带有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,表明操作失败或者存在类型不匹配 - 这看起来很合理,因为我无法弄清楚如何参数化查询。
谢谢 - 这正是我所期待的。 – 2009-11-01 17:48:38