Porque não está deletando?

4 respostas
N

Porque esse trecho de código não funciona para deletar registros no bd?

public void deletarRegistro() {
      try { 
         String driver = "org.hsqldb.jdbcDriver"; 
         String url = "jdbc:hsqldb:file:./db/database"; 
         String userId = "sa"; 
         String password = ""; 
         String sqlDelete = "DELETE FROM CLIENTES WHERE ID_CLIENTE = ?"; 
         Class.forName(driver); 
         Connection connection = DriverManager.getConnection(url, userId, password); 
         String id = JOptionPane.showInputDialog(null, "Digite a ID do cliente a ser deletado:", "ID", 3); 
         int idInt = Integer.parseInt(id); 
         PreparedStatement pstmt = connection.prepareStatement(sqlDelete);       
         pstmt.setInt(1, idInt);
         int deletou = pstmt.executeUpdate();
         if(deletou != 1) { 
            JOptionPane.showMessageDialog(null, "Não foi possível deletar o registro! Verifique se existe a id digitada.", "Resultado.", 3);  
            pstmt.close();              
            connection.close();   
         } 
         else { 
            connection.commit();
            JOptionPane.showMessageDialog(null, "Registro deletado com sucesso!", "Resultado.", 1);    
            pstmt.close();
            connection.close();
          }
      }
      catch(ClassNotFoundException cnfe) {
         cnfe.printStackTrace(); 
         System.out.println("O erro foi: " + cnfe.toString());
      }
      catch(SQLException sqle) {
         sqle.printStackTrace();  
         System.out.println("O erro foi: " + sqle.toString()); 
      }
   }

4 Respostas

K

Qual o erro?

N

Não aparece nenhuma mensagem de erro.

K

Usando este mesmo código, UPDATE, INSERT e SELECT funcionam?

N

Usei o mesmo código para INSERT.
Mudando apenas o PreparedStatement para DELETE.

Criado 7 de setembro de 2006
Ultima resposta 9 de set. de 2006
Respostas 4
Participantes 2