Dúvida na hora de excluir um registro e fazer update

8 respostas
D

Bom dia galera

o problema é o seguinte, estou fazendo uma aplicação para um controle de Viagens onde uma das telas que encerrar a viagem quando eu clicar no botão encerrar Viagem, ele automaticamente terá que excluir o registro na tabela viagem e fazer um update mudando a situação do veículo para Disponível, só que não estou conseguindo excluir e nem fazer o update, tipo não dá erro, mas não faz as alterações nas tabelas, eu faço a pesquisa e os dados continuam lá, se alguém puder dar uma luz.

Desde já agradeço. :roll:

8 Respostas

kicolobo

Tem como você postar o stacktrace da aplicação aqui?

D

Estou no serviço agora, esta aplicação e um trab da Faculdade.

Mas tipo assim, não dá erro, mas não funciona, eu vou fazer a consulta e continua como eu cadastrei.

kicolobo

Tem como postar algum código pelo menos? Assim por alto fica complicado de poder até mesmo dar um chute. :slight_smile:

D

Ésta aí!!
estas são as chamadas q estou fazendo na tela…

private void btnFecharActionPerformed(java.awt.event.ActionEvent evt) {                                          
        Veiculo v = new Veiculo();
        try {
            VeiculoDAO vd = new VeiculoDAO('M', v);
        } catch (SQLException ex) {
            Logger.getLogger(FormLocacao.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(FormLocacao.class.getName()).log(Level.SEVERE, null, ex);
        }

        this.dispose();
    }                                         

    @SuppressWarnings("static-access")
    private void btnEncerrarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        Viagem v = new Viagem(Integer.parseInt(txfCodigo.getText()));
        try {
            ViagemDAO vd = new ViagemDAO('E', v);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Viagem.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SQLException ex) {
            Logger.getLogger(Viagem.class.getName()).log(Level.SEVERE, null, ex);
        } 
    }

estes são os métodos o primeiro esta dentro da classe ViagemDAO

public ViagemDAO(char tipo, Viagem v) throws SQLException, ClassNotFoundException {
        if (tipo == 'I') {
            this.incluir(v);
        } else if ( tipo == 'E') {
            this.FecharViagem(v);
        }
    }

 public static void FecharViagem(Viagem v) throws SQLException {
        Connection con = Conexao.getConnection();
        PreparedStatement pst = null;
            String sql = "delete from viagem where viagem_codigo = ?";
            pst = con.prepareStatement(sql);
            pst.setInt(1, v.getCodigo());
            pst.execute();
    }

segundo dentro da classe VeiculoDAO

public VeiculoDAO(char tipo, Veiculo v) throws SQLException, ClassNotFoundException {
        if (tipo == 'I') {
            this.incluir(v);
        } else if (tipo == 'M'){
             this.mudarSituacaoVeiculos(v);
    }
}


public static boolean mudarSituacaoVeiculos(Veiculo v){
        Connection con = Conexao.getConnection();
        PreparedStatement pst = null;
        try {
            String sql = "UPDATE VEICULO SET VEICULO_SITUACAO='D' WHERE VEICULO_CODIGO=veiculo_codigo";
              pst = con.prepareStatement(sql);
              pst.execute();
            return true;
        } catch (Exception e) {
            System.out.println("Erro: " + e.getMessage());
            return false;
        } finally {
            Conexao.closeAll(con, pst);
        }

    }

}
B

Tenta dar um commit após as operações para que as mesmas sejam concretizadas.

D

Como assim Binnho? Fora do try?

Só commit mesmo?

B

Eu estava confundindo um pouco.

tenta usar o metodo executeUpdate(); no lugar de execute();

B

Ou no final do comando (após o execute():wink: coloca con.commit();

Criado 8 de novembro de 2010
Ultima resposta 8 de nov. de 2010
Respostas 8
Participantes 3