Использование подготовленного оператора и привязки переменной Order By в Java с драйвером JDBC ⇐ JAVA
-
Anonymous
Использование подготовленного оператора и привязки переменной Order By в Java с драйвером JDBC
Я использую
[*]jdbcTemplate для подключения JDBC к базе данных MySQL [*]подготовлены инструкции, чтобы максимально защитить себя от атак с использованием SQL-инъекций. [*]нужно принимать запросы от пользователя на сортировку данных по любому из дюжины различных столбцов. [*]
следующее утверждение
jdbcTemplate.query("SELECT * FROM TABLE1 ORDER BY ? ?", colName, sortOrder); Конечно, это не работает, поскольку привязки переменных не должны указывать имена столбцов, а только значения параметров для выражений в запросе.
Итак... как люди решают эту проблему? Простое выполнение сортировки в Java-коде кажется простым решением, но поскольку я получаю переменную строку для сортировки столбца и переменную, сообщающую мне порядок сортировки... это ужасное количество условий сравнения, которые нужно выполнить. крышка. Кажется, это должна быть обычная проблема с общим шаблоном ее решения...
Я использую
[*]jdbcTemplate для подключения JDBC к базе данных MySQL [*]подготовлены инструкции, чтобы максимально защитить себя от атак с использованием SQL-инъекций. [*]нужно принимать запросы от пользователя на сортировку данных по любому из дюжины различных столбцов. [*]
следующее утверждение
jdbcTemplate.query("SELECT * FROM TABLE1 ORDER BY ? ?", colName, sortOrder); Конечно, это не работает, поскольку привязки переменных не должны указывать имена столбцов, а только значения параметров для выражений в запросе.
Итак... как люди решают эту проблему? Простое выполнение сортировки в Java-коде кажется простым решением, но поскольку я получаю переменную строку для сортировки столбца и переменную, сообщающую мне порядок сортировки... это ужасное количество условий сравнения, которые нужно выполнить. крышка. Кажется, это должна быть обычная проблема с общим шаблоном ее решения...