Какие части заявления SQL должны присутствовать, не охватывается подготовленными утверждениями (если вы не проявите творческий подход). Обычно решение генерирует условия в предложении where
динамически, например:
String sql = "select * from books where 1=1";
if (author != null) {
sql += " and author=?";
}
if (theme != null) {
sql += " and theme=?";
}
После того, как вы подготовили оператор, вам нужно установить параметры, следя за использованием правильных индексов:
int parameterIndex = 1;
if (author != null) {
preparedStatement.setString(parameterIndex, author);
parameterIndex++;
}
if (theme != null) {
preparedStatement.setString(parameterIndex, theme);
parameterIndex++;
}