我正在尝试使用命名参数,但是当我将它们放在单引号内时,它们不会被替换为查询,并且会返回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);
}
答案 0 :(得分:0)
可能是在单引号内使用\ n,需要封装\ n,对于表达式'%:query%',您可以将其写为...'+%:query%+'在单引号内,或者可能是'“ +%:query%+”'