#java #mysql #sql #jdbctemplate
#java #mysql #sql #jdbctemplate
Вопрос:
Я не понимаю, как использовать %?% в приведенном ниже запросе. Это выдает мне ошибку:
PreparedStatementCallback; исключение SQLException без рубрики для SQL [выберите * из имен, где имя похоже на ‘%?%’]
Проблема:
String sql = "select * from names where name like ?";
List<NamesModel> names = jdbcTemplate.query(sql, new Object[]{searchName}, new NamesRowMapper());
Комментарии:
1. Всегда добавляйте полную трассировку стека
2. Также, пожалуйста, покажите ввод.
3. Я передаю строковое значение в качестве входных данных. например: Строка username = «XYZ»; Список<Имена> имена = namesDao.getAllmatchingNames (имя пользователя);
Ответ №1:
Ваше исключение сообщает вам, что вы не можете привязать значение в кавычках. Ниже не будет работать:
String sql = "select * from names where name like '%?%'";
List<NamesModel> names = jdbcTemplate.query(sql,
new Object[]{ searchName }, new NamesRowMapper());
Правильный способ — добавить %
вокруг searchName
значения параметра:
String sql = "select * from names where name like ?";
List<NamesModel> names = jdbcTemplate.query(sql,
new Object[]{ "%" searchName "%"}, new NamesRowMapper());