2
Spring-jdbc NamedParameterJdbcTemplateを使用して、サイトで検索機能を整理しようとしています。NamedパラメーターがMySql LIKEステートメントで機能しない
public List<PhoneEntry> searchPhoneEntries(String search, String username) {
String SQL = "select * from entries, users where users.enabled=true " +
"and entries.username=:username " +
"and concat(secondName, firstName, patronymic, mobile, tel, " +
"address, entries.email) like ('%:search%')";
MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue("username", username);
params.addValue("search", search);
return jdbcTemplate.query(SQL, params, new PhoneEntryMapper());
}
しかし、空のリストを取得してもエラーは発生しません。
シンプル連結使用して:私はそれが安全ではありません理解し、それが正常に動作し
"...like '%" + search + "%'";
を、しかし。私も、パラメータに '%' 記号を追加してみました
:
MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue("username", username);
params.addValue("search", "'%" + search + "%'");
return jdbcTemplate.query(SQL, params, new PhoneEntryMapper());
しかし、それはあまりにも動作しません。
はい、動作します。ありがとう! –