Подстановочные знаки в Java PreparedStatements

Попробуйте преобразовать сессионную переменную, например:

//Another Controller
DataSet dspermission = new DataSet();
dspermission = System.Web.HttpContext.Current.Session["Dataset"] as DataSet;
8
задан sblundy 29 November 2008 в 18:56
поделиться

1 ответ

Вы помещаете % в связанную переменную. Таким образом, Вы делаете

   stmt.setString(1, "%" + likeSanitize(title) + "%");
   stmt.setString(2, "%" + likeSanitize(artist) + "%");

Необходимо добавить ESCAPE'!' чтобы позволить Вам выходить из специальных символов, которые имеют значение для СИМПАТИИ в Вас исходных данных.

Перед использованием заголовка или художника необходимо санировать их (как показано выше) путем выхода из специальных символов (!, %, _, и [) с методом как это:

public static String likeSanitize(String input) {
    return input
       .replace("!", "!!")
       .replace("%", "!%")
       .replace("_", "!_")
       .replace("[", "![");
} 
18
ответ дан 5 December 2019 в 09:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: