Использование подготовленного оператора и переменной связывания Order By в Java с драйвером JDBC
Я использую
jdbcTemplate to make JDBC connections to a mySQL DB prepared statements to protect myself as much as possible from SQL injection attacks in need to accept requests from the user to sort the data on any of a dozen different columnsthe following statement
jdbcTemplate.query("SELECT * FROM TABLE1 ORDER BY ? ?", colName, sortOrder);
Конечно, это не работает, потому что привязки переменных не должны указывать имена столбцов только значения параметров для выражений в запросе.
Итак ... как люди решают эту проблему? Простое выполнение сортировки в коде Java кажется простым решением, но, поскольку я получаю переменную строку для столбца, по которому производится сортировка, и переменную, сообщающую мне порядок сортировки ... это ужасное число компараторов. условия для покрытия. Похоже, что это должна быть общая проблема с общим шаблоном для ее решения ...