SELECT-запрос в java

Рейтинг: 1Ответов: 1Опубликовано: 07.10.2014

Использую PrepareStatement для выбора информации. Таблица имеет 3 поля: дата, время и сообщение. Метод deleteInformationFromDataBase удаляет конкретное сообщение (1 строку из таблицы). Теперь надо отправить запрос, который будет удалять все записи, в которых встречается конкретная дата. Не хочу создавать другой метод. Как, используя этот метод, передать СУБД нужный запрос?

типу: where date='2014-10-07' and time= * and message= *

Или просто в методе смотреть, какие параметры передаются.
И если два последних = *, то формировать String SQL только с prepareStatementObject.setString(1, date);

public void deleteInformationFromDataBase(String date, String time,
    String message) {
String SQL = "DELETE FROM todolist WHERE date = ? and time = ? and message = ?";
try {
    prepareStatementObject = connectionObject.prepareStatement(SQL);
    prepareStatementObject.setString(1, date);
    prepareStatementObject.setString(2, time);
    prepareStatementObject.setString(3, message);
    prepareStatementObject.executeUpdate();
} catch (SQLException e) {
    e.printStackTrace();
}

}

Ответы

▲ 1

Используйте динамическое построение запроса:

  1. В методе проверяйте на пустоту входные аргументы;
  2. Если аргумент не пустой - добавлять его в условие "WHERE";
  3. Если пустой - не учитывать его в условии.