【发布时间】:2019-07-01 23:06:22
【问题描述】:
我正在尝试使用命名参数,但是当我将它们放在单引号内时,它们不会被查询替换,它返回 0 结果。如何在单引号内使用我的参数?
protected static final String SQL_QUERY =
" SELECT * \n" +
" FROM example \n" +
" WHERE UPPER(name) LIKE UPPER('%:query%') \n";
@Autowired
private NamedParameterJdbcTemplate template;
public List<Item> getResultFromQuery(String query) throws Exception {
return (List<Item>) template.query(SQL_QUERY,
new MapSqlParameterSource().addValue("query", query), resultSetExtractor);
}
【问题讨论】:
-
你不需要引号。准备好的语句将为您添加它们。
-
WHERE UPPER(name) LIKE '%' || UPPER(:query) || '%' -
谢谢@EdGibbs,解决了问题。
-
甜蜜!很高兴它解决了:)
标签: java sql oracle named-parameters