Поиск по флажкам: динамически генерировать подготовленный оператор с таким количеством «?» в качестве числа отмеченных флажков - PullRequest
0 голосов
/ 11 марта 2020

Коротко: Моя проблема заключается в написании метода, который генерирует подготовленный оператор, основанный на количестве отмеченных флажков и заполняющий "?".

Эй, я получил текстовый поиск в поисках соответствующих названий и авторов, которые выглядит так.

String query = "SELECT * FROM xyz WHERE title LIKE ? OR author LIKE ?";
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, "%" + searchtext + "%");
ps.setString(2, "%" + searchtext + "%");

Работает просто отлично. Теперь я хочу реализовать поиск на основе флажков. Каждая запись в базе данных имеет жанр, топи c и вариант использования. Каждый из этих 3 имеет 8-9 возможностей.

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

Флажки

Что я хочу, например, может быть (genre1 или genre2) и topic7 и (usecase5 или usecase9)

Поскольку только отмеченные флажки возвращают значение сервлету, я не знаю, как написать подготовленное утверждение, подходящее для всех возможных сценариев ios. Я считаю, что мне нужно подсчитать, сколько флажков возвращают значение, получить их значения и динамически генерировать подготовленный оператор с таким количеством "?" как количество отмеченных флажков. Друг? должен быть заполнен ps.setString ().

Вы бы сгруппировали флажки в одной группе, используя одно и то же имя, или оставили бы все флажки в покое?

...