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