我正在尝试使用列表匹配的JdbcTemplate查询:

List foos = jdbcTemplate.query("select * from foo where name IN (?)",
    new Object[] { Arrays.asList("foo1", "foo2", "foo3")},
    new FooMapper()
);


结果:即使name列等于字符串foo1,数据库列也不匹配。为什么?

如果可能,使用JdbcTemplate不带命名参数的情况。

最佳答案

Set<String> names = ...;

MapSqlParameterSource fooParams = new MapSqlParameterSource();
fooParams.addValue("names", names);

List<Foo> foo = getJdbcTemplate().query("SELECT * FROM foo WHERE name IN (:names)",
     fooParams, getRowMapper());

关于java - 如何在JdbcTemplate中的List中使用IN()子句?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57204229/

10-11 04:32