drno-reg
@drno-reg
см не кратко

Как динамически определять условия для параметризованного select?

Здравствуйте.

У меня к примеру есть параметризованный select
String sql = "SELECT STUDENT FROM SCHOOL WHERE SCHOOL LIKE ? ";
PreparedStatement prepStmt = conn.prepareStatement(sql);
prepStmt.setString(1, "Waterloo%");
ResultSet rs = prepStmt.executeQuery();


все хорошо для случаев, когда фильтр в селекте постоянен, НО вот возникла ситуация, когда
select должен динамически интерпретироваться типа
SELECT STUDENT FROM SCHOOL WHERE 
SCHOOL LIKE "Waterloo%" or SCHOOL LIKE "Stackloo%"


String sql = "SELECT STUDENT FROM SCHOOL WHERE SCHOOL LIKE ? OR SCHOOL LIKE ?";
PreparedStatement prepStmt = conn.prepareStatement(sql);
prepStmt.setString(1, filter_select);
prepStmt.setString(2, filter_select);
ResultSet rs = prepStmt.executeQuery();


Как лучше решить эту проблему?
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
AlexXYZ
@AlexXYZ
O Keep Clear O
Специального встроенного механизма в jdbc нет. Нужно сначала сгенерировать строку для нового запроса с параметрами, потом выполнить установку этих параметром. Либо заготовить несколько запросов с разными условиями и также параметризовать их перед выполнением.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы