Использование подготовленного оператора и переменной связывания 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 columns

the following statement

jdbcTemplate.query("SELECT * FROM TABLE1 ORDER BY ? ?", colName, sortOrder);

Конечно, это не работает, потому что привязки переменных не должны указывать имена столбцов только значения параметров для выражений в запросе.

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

Ответы на вопрос(3)

Ваш ответ на вопрос