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

Я пытаюсь удалить событие из своей таблицы. Однако я не могу заставить его работать. Мой оператор 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

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

 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() чтобы вернуть действительное соединение с базой данных.

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

 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(); } }