Как мне разработать несколько условий SQL и впоследствии безопасно включить эти условия в запрос вместе с предложением order by?
Я пытаюсь написать операторы SQL с потенциально множественными условиями и порядком предложений, например
SELECT *
FROM table_1
WHERE id = '4' AND (Multiple conditions)
ORDER BY (Column name and direction).
До сих пор я использовал подготовленные операторы, но он не поддерживает динамическиеПредложение ORDER BY, не имеющее нескольких динамических условий. Таким образом, мой текущий подход предусматривает использование конкатенации строк для самостоятельной разработки условий, а затем использование форматирования строк для добавления их в запрос вместе с предложением order by. Я считаю, что этот подход уязвим для внедрения SQL, и я не смог найти безопасный альтернативный подход. Я рассмотрел динамические запросы, но у меня нет доступа в этой части конвейера. Я также рассмотрел санацию, но это все равно оставило бы уязвимость для атаки JSON или HTML. Я также рассмотрел возможность написания независимых запросов для каждого сценария, но это совсем не масштабируется.
Любая помощь приветствуется, я уже некоторое время ищу решение.
РЕДАКТИРОВАТЬ: Вот фрагмент.
static final String SELECT_DEALS =
"SELECT *
FROM #DEALS
WHERE DEAL_ID = ? AND NAME LIKE ? AND ?
ORDER BY ?";
Первые два параметра работают нормально, вторые два приводят к ошибкам типа