удалить sql не удаляя - PullRequest
       4

удалить sql не удаляя

1 голос
/ 13 февраля 2011

Я пытаюсь удалить событие из моей таблицы. Однако я не могу заставить его работать. Мой оператор SQL:

  public void deleteEvent(String eventName){
    String query = "DELETE FROM `Event` WHERE `eventName` ='"+eventName+"' LIMIT 1";
    db.update(query);
    System.out.println (query);
}

Использование MySQL DB

Ответы [ 2 ]

4 голосов
/ 13 февраля 2011

Попробуйте использовать следующее:

String query = "DELETE FROM `Event` WHERE `eventName` ='"+eventName+"' LIMIT 1";

        try {
            Connection con = getConnection();
            Statement s = con.createStatement();

            s.execute(query);
        } catch (Exception ex) {
            ex.printStackTrace();
        }

Вы должны указать свой метод getConnection() для возврата действительного соединения с базой данных.

0 голосов
/ 13 февраля 2011

Я бы предложил использовать Statement.executeUpdate метод, поскольку он возвращает целое число. Поэтому после выполнения этого запроса на удаление у вас также будет информация, действительно ли вы удалили какие-либо записи (в этом случае вы ожидаете, что этот метод вернет 1, поскольку вы используете LIMIT = 1). Я бы также предложил закрыть Statement, как только он вам не понадобится, вот реализация скелета:

private void performDelete(Connection conn, String deleteQuery, int expectedResult) throws SQLException {
    Statement stmt = conn.createStatement();
    int result = -1;
    try {
        result = stmt.executeUpdate(deleteQuery);
        if(result != expectedResult) {
            //Here you can check the result. Perhaps you don't need this part
            throw new IllegalStateException("Develete query did not return expected value");
        }
    } catch(SQLException e) {
        //Good practice if you use loggers - log it here and rethrow upper.
        //Or perhaps you don't need to bother in upper layer if the operation
        //was successful or not - in such case, just log it and thats it.
        throw e;
    } finally {
        //This should be always used in conjunction with ReultSets.
        //It is not 100% necessary here, but it will not hurt
        stmt.close();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...