Java 未在单引号内替换命名参数
我试图使用命名参数,但当它们位于单引号内时,查询不会替换它们,并且它返回0个结果。如何在单引号内使用参数Java 未在单引号内替换命名参数,java,sql,oracle,named-parameters,Java,Sql,Oracle,Named Parameters,我试图使用命名参数,但当它们位于单引号内时,查询不会替换它们,并且它返回0个结果。如何在单引号内使用参数 protected static final String SQL_QUERY = " SELECT * \n" + " FROM example \n" + " WHERE UPPER(name) LIKE UPPER('%:query%') \n"; @Autowired private NamedParameterJd
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);
}
受保护的静态最终字符串SQL\u查询=
“选择*\n”+
“来自示例\n”+
“WHERE UPPER(name)LIKE UPPER('%:query%')\n”;
@自动连线
私有名称参数jdbc模板模板;
公共列表getResultFromQuery(字符串查询)引发异常{
返回(列表)模板查询(SQL\U查询,
新的MapSqlParameterSource().addValue(“查询”,查询),ResultTextRactor);
}
可能是您在单引号中使用\n,您需要封装\n表达式“%:query%”,您可以将其写为…“+%”:query%+'在单引号内,或者可能是'+%:query%+'可能是在单引号内使用的,您需要封装\n表达式'%:query%'可以写为…'+%:query%+'位于单个数量内,也可以是'+%:query%+'您不需要引号。准备好的语句将为您添加它们。WHERE UPPER(名称)如“%”| | UPPER(:query)| |“%”
Thankyou@EdGibbs,解决了问题。太好了!很高兴它成功了:)你不需要引号。准备好的语句将为您添加它们。WHERE UPPER(名称)如“%”| | UPPER(:query)| |“%”
Thankyou@EdGibbs,解决了问题。太好了!很高兴它成功了:)