Я пытаюсь использовать MapSqlParameterSource для создания запроса с использованием предложения Like.
Код выглядит примерно так.Функция, содержащая его, получает nameParam:
String namecount = "SELECT count(*) FROM People WHERE LOWER(NAME) LIKE :pname ";
String finalName= "'%" +nameParam.toLowerCase().trim() + "%'";
MapSqlParameterSource namedParams= new MapSqlParameterSource();
namedParams.addValue("pname", finalName);
int count= this.namedParamJdbcTemplate.queryForInt(namecount, namedParams);
Это не работает правильно, давая мне где-то между 0-10 результатами, когда я должен получать тысячи.По сути, я хочу, чтобы окончательный запрос выглядел так:
SELECT count(*) FROM People WHERE LOWER(NAME) LIKE '%name%'
, но этого явно не происходит.Буду признателен за любую помощь.
Редактировать:
Я также пытался поместить '%' в SQL, как
String finalName= nameParam.toLowerCase().trim();
String namecount = "SELECT count(*) FROM People WHERE LOWER(NAME) LIKE '%:pname%' "
;
но это тоже не работает.