Erro ao usar delete

1 resposta
Z

Seguinte estou utilizando o código abaixo para me conectar com o banco, até ai sem problemas ele conecta me exibe todas as informações, só que quando eu vou deletar um registro ele vai para o Exception o que estou fazendo de errado...

agradecendo desde já

static Connection conn = null; 

public void iniciarConexao() {  
   if (conn == null) { 
      try { 
         Componente2 umComp; 
         vetorComp.clear(); 
         Class.forName("com.mysql.jdbc.Driver"); 
         conn =       DriverManager.getConnection("jdbc:mysql://localhost/controleEstoque?user=root&password=11t14i28"); 
         Statement stmt = conn.createStatement( ); 
         ResultSet rs = stmt.executeQuery("select c.codigo,c.qtdAtual,c.qtdMax,c.descricao,c.valor,c.qtdMin,t.tipo,l.local,u.unidade from    Componente c left join Local l on l.codigo = c.codLocal left join Tipo t on t.codigo = c.codTipo  left join Unidade u on u.codigo = c.codUnidade"); 
         while(rs.next()) { 
            umComp = new Componente2(); 
            totalRegistros++; 
            umComp.codigo = rs.getInt("c.codigo"); 
            umComp.qtdAtual = rs.getInt("c.qtdAtual"); 
            umComp.qtdMax = rs.getInt("c.qtdMax"); 
            umComp.descricao = rs.getString("c.descricao"); 
            umComp.valor = rs.getDouble("c.valor"); 
            umComp.qtdMin = rs.getInt("c.qtdMin"); 
            umComp.tipo = rs.getString("t.tipo"); 
            umComp.unidade = rs.getString("u.unidade"); 
            umComp.local = rs.getString("l.local"); 
            vetorComp.addElement(umComp); 
        } 
        stmt.close(); 
   } catch (Exception e) { 
   System.err.println ("Erro no comando de Conexao"); 
   } 
   } 
} 

public void deletarRegistro(){ 
   try{  
      Statement stmt = conn.createStatement(); 
      stmt.executeQuery("DELETE FROM Componente WHERE codigo = 2"); 
      stmt.close(); 
   }catch(SQLException ex){ 
      System.out.println(ex.getMessage()); 
   } 
}
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

1 Resposta

C

Olá, ztiago

O método executeQuery da classe Statement só pode ser executado para instruções SQL que retornem um ResultSet (ou seja, comandos SELECT). Como o comando DELETE não retorna um ResultSet, você deve chamar o método executeUpdate, ao invés do executeQuery.

Teste essa mudança e diga se deu certo.

Até mais,

Criado 19 de agosto de 2006
Ultima resposta 19 de ago. de 2006
Respostas 1
Participantes 2