Строки после executeQuery(quer) не выполняются?

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   String del_user = JOptionPane.showInputDialog(null,"Enter the Username To be deleted     :"  ,"Delete User !", JOptionPane.WARNING_MESSAGE);

   try {    
      stmt = con.createStatement(); 
      String quer = "delete from Udet where username='"+del_user+"'";
      rs=stmt.executeQuery(quer);

      int count=0; 
      while(rs.next())
      {
         count++;
     }

     if(count==1)
     {
        JOptionPane.showMessageDialog(null,"The user has been deleted");
     }

     else
     {
        JOptionPane.showMessageDialog(null,"No such User Exists");
     }

  } catch(Exception e){}


}        

ЗАПРОС ВЫПОЛНЯЕТ ШТРАФ! ЗАПИСЬ УДАЛЯЕТСЯ, НО ЛИНИИ ПОСЛЕ QUERYEXECUTION НЕ ВЫПОЛНЯЮТСЯ... JOptionPane будет работать после блока try, но тогда значение count не будет определено...

1 ответ

Решение

DELETE заявление не возвращает ResultSet и поэтому вы должны использовать метод stmt.executeUpdate(quer); вместо stmt.executeQuery(quer);, Один из способов увидеть, сколько результатов было удалено из запроса, - запустить SELECT COUNT(*) запрос к таблице до и после DELETE с использованием executeQuery() метод, который будет оба раза возвращать ResultSet с единственным результатом, содержащим, сколько записей содержит таблица. После запуска до и после DELETE Вы можете сравнить 2 числа. Результатом, вероятно, будет String но вы можете просто использовать int integer = Integer.parseInt(String); чтобы получить int от него. Код должен выглядеть так:

stmt = "SELECT COUNT(*) AS Count FROM table_name";
int initialSize = 0;
rs = stmt.executeQuery(stmt);
while(rs.next){
  initialSize = Integer.parseInt(rs.getString("Count");
}

Запустить DELETE запрос, а затем повторите COUNT запрос прохождения int в новую переменную (для этого ответа я назову это newSize) поэтому количество изменений DELETE сделано будет:

int changesMade = initialSize - newSize;
Другие вопросы по тегам