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