Método para Deletar, usando JFrame

7 respostas
S

[b]
Alguem sabe algum codigo para realizar uma String sql, que realiza um delete em uma tabela do postgres?
inserendo o ID da tabela no textfield.

7 Respostas

ViniGodoy

Em que pé você está? Já criou a conexão com o banco?

S

Sim ja criei uma conexão com o banco no pacote Uitilitarios, ja criei minhas classes, Ocorrencia, Veiculos, Cliente e Servicos.
Tudo para deletar os dados de minha ocorrencia, pois estou usando Herança.

Seria uma String SQl= “Delete * from ocorrencia where idocorrencia = ?”;

Então apenas precisaria setar o campo idocorrencia para referenciar o “?” de meu sql.

ViniGodoy

Isso, então vc faz assim:

PreparedStatement stmt = conexao.prepareStatement("DELETE ocorrencia WHERE idocorrencia = ?"); stmt.setInt(1, ocorrencia.getId()); stmt.executeUpdate(); stmt.close();

S

esse é meu dao onde possui o metodo

public void Excluir (DomainObject domainObject){

try{
 String sql = "Delete * from ocorrencia where idocorrencia=?";
 
Connection conn = Conexao.getConnection();

 Ocorrencia ocorrencia = (Ocorrencia) domainObject;
             
PreparedStatement pst = conn.prepareStatement(sql);
            pst.setInt(1,ocorrencia.getIDOcorrencia());




            //Executando a sql
            pst.executeUpdate(sql);

            //Fechando o tratamento da sql
            pst.close();

            //Fechando a conexão
        
           JOptionPane.showMessageDialog(null,"excluido");
            //return ocorrencia;

        } catch (Exception e) {
            //return null;
        }
    }

Aqui é meu JFrame

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
Ocorrencia ocorrencia = new Ocorrencia();



ocorrencia.setIDOcorrencia(Integer.parseInt(tfcodigo.getText()));



       

      IFachadaOcorrencia fachadaoco = new Fachadaocorrencia();
        fachadaoco.Excluir(ocorrencia);

Porém não deleta nada

ViniGodoy

Você não deve passar o sql como parâmetro do método executeUpdate().

Outra coisa. Pare de ignorar a exception. Senão, caso dê algum erro, você nunca ficará sabendo qual é.

No lugar de

catch(Exception e) 
{
}

Faça:

catch(Exception e) { e.printStackTrace(); throw new RuntimeException(e); }

Finalmente, na clausula DELETE não tem * e nem FROM.

S

Blezinha.. o Delete funcionou...
Agora esee select não esta retornando tbm...

public void consultar(DomainObject domainObject) {
        Ocorrencia ocorrencia = new Ocorrencia();
        try {
            Connection conn = Conexao.getConnection();

            String select =
 "SELECT * FROM ocorrencia where idocorrencia = ?";
            //Tratando a sql  a ser executada



            PreparedStatement pst = conn.prepareStatement(select);
            pst.setInt(1,ocorrencia.getIDOcorrencia());
            ResultSet rs = pst.executeQuery(select);
    
           
           
            ocorrencia.setDescricao(rs.getString("descricao"));
            ocorrencia.setData(rs.getString("data_ocorrencia"));
            ocorrencia.getServicos().setDescricaoServ("servico");
            ocorrencia.getVeiculo().setPlaca("placa");
            ocorrencia.getCliente().setNomecli("nomecliente");
            // arraycli.add(ocorrencia);

                  

            //Fechando o tratamento da sql
            pst.close();

            //Fechando a conexão
            conn.close();
           JOptionPane.showMessageDialog(null, "pesquisa retornada");
           }
        
      

            catch (Exception e)
        { e.printStackTrace();
            JOptionPane.showMessageDialog(null, e.getMessage());

        }
ViniGodoy

Tire o parâmetro select do método executeQuery.

Outra coisa, dá uma olhada nesse tópico aqui:
http://www.guj.com.br/posts/list/50115.java

Já corrigi os seus posts anteriores. Mas é bom saber usar a tag code corretamente. :wink:

Criado 4 de outubro de 2009
Ultima resposta 5 de out. de 2009
Respostas 7
Participantes 2