Используйте подготовленное заявление Java с НРАВИТСЯ - PullRequest
0 голосов
/ 04 марта 2019

Я хочу использовать подготовленный Java-оператор с ключевым словом LIKE.Я пытаюсь сопоставить строку даты.Вот мой код.

String summaryChooser = "SELECT * FROM PRODUCT p, CODE_COVERAGE_SUMMARY s WHERE "
                    + " p.product_id = s.product_id AND p.product_id = ? AND s.date LIKE ? "
                    + " ORDER BY s.date DESC LIMIT 1 ";
ps = dbConnection.prepareStatement(summaryChooser);
ps.setInt(1, productsResult.getInt("product_id"));
ps.setString(2,  "%" + date + "%");

Ниже приводится исключение.

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: у вас есть ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '?И s.date НРАВИТСЯ?ЗАКАЗАТЬ по s.date DESC LIMIT 1 'в строке 1

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Я мог бы заставить это работать, делая это.

ps.setString(2, date + "%");

Спасибо всем:)

0 голосов
/ 04 марта 2019

Заменить:

ps.setString(2,  "%" + date + "%");

на:

ps.setString(2,  "'" + date + "'");
...