好吧,我有这样的查询:
SELECT * FROM table WHERE someDate IN (date1, date2, date3);
我正在尝试使用ST(SpringTemplate)构建它,并使用JDBCTemplate进行查询。
如果我只传递一个日期,我可以使用:
stringTemplateInstance.add("someColKey",dateInstance);
但是如何发送日期列表以便IN
子句获得它?。
现在,我正在使用StringUtils.collectionToCommaDelimitedString(dateListForQuery);
查询(我不喜欢)。
答案 0 :(得分:1)
放弃StringTemplate
和JdbcTemplate
,然后切换到NamedParameterJdbcTemplate
。
String query = "select * from table where someDate in (:dates)";
Map<String, Object> params = new HashMap<String, Object>();
params.put("dates", yourlistofdates);
List<YourResultType> result = template.query(query, params, new YourResultTypeRowMapper());
就是这样。