Использование подготовленного оператора и привязки переменной Order By в Java с драйвером JDBCJAVA

Программисты JAVA общаются здесь
Anonymous
Использование подготовленного оператора и привязки переменной Order By в Java с драйвером JDBC

Сообщение Anonymous »


Я использую
[*]jdbcTemplate для подключения JDBC к базе данных MySQL [*]подготовлены инструкции, чтобы максимально защитить себя от атак с использованием SQL-инъекций. [*]нужно принимать запросы от пользователя на сортировку данных по любому из дюжины различных столбцов. [*]
следующее утверждение

jdbcTemplate.query("SELECT * FROM TABLE1 ORDER BY ? ?", colName, sortOrder); Конечно, это не работает, поскольку привязки переменных не должны указывать имена столбцов, а только значения параметров для выражений в запросе.

Итак... как люди решают эту проблему? Простое выполнение сортировки в Java-коде кажется простым решением, но поскольку я получаю переменную строку для сортировки столбца и переменную, сообщающую мне порядок сортировки... это ужасное количество условий сравнения, которые нужно выполнить. крышка. Кажется, это должна быть обычная проблема с общим шаблоном ее решения...

Вернуться в «JAVA»