Исключение SQL при попытке сделать готовый оператор - PullRequest
1 голос
/ 20 января 2009

Я пытаюсь передать следующее String в PreparedStatement:

private static final String QUICK_SEARCH = "select * from c where NAME like '% ? %'";

Однако я получаю исключение SQL, что отсутствует переменная связывания.

Есть предложения?

Ответы [ 3 ]

1 голос
/ 20 января 2009

Не можете ли вы использовать параметры внутри конкатенации строк?

1 голос
/ 20 января 2009

прохладный

я просто устанавливаю знаки% при настройке подготовленного заявления;

pstmt.setString(1, "%" + name + "%");
1 голос
/ 20 января 2009

Вы не можете поместить переменные связывания в строку, подобную этой.

Вам необходимо использовать:

SELECT * FROM c WHERE name LIKE CONCAT('%', ?, '%')

или аналогичный, в зависимости от того, какие функции поддерживаются вашей версией SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...