Orientação a Objetos botão Alterar [Resolvido]

5 respostas
J

Ai pessoal, me desculpem se eu estiver atrapalhando, mas estou aprendendo muito aqui, com algumas dicas que eu consegui aqui, meu projeto está ficando ótimo, Muito obrigado a todos que dão este apoio.

Vai mais uma pergunta, eu fiz uma classe de métodos, onde se encontra o método alterar, e no JFrame fiz para chamar este método, fiz uma classe de conexão também (isto tudo eu aprendi aqui).

Só que meu Botão alterar não está alterando. Eu já fiz o botão cadastrar e ele funciona perfeitamente mas o alterar, não funciona. segue as minhas classes.

Esta é a classe onde se encontra meus métodos
public void alterar(Variaveis variaveis) throws Exception {
        PreparedStatement ps = null;
        try {
            String sql =("UPDATE cadastrados SET nome= ?, endereco=? "
                                            + ", complemento=?, numero=?, fixo=?"
                                            + ", celular1=?, celular2= ? where id=?");

            ps = connection.prepareStatement(sql);
            ps.setInt(1, variaveis.getId());
            ps.setString(2, variaveis.getNome());
            ps.setString(3, variaveis.getEndereco());
            ps.setString(4, variaveis.getComplemento());
            ps.setString(5, variaveis.getNumero());
            ps.setString(6,variaveis.getFixo());
            ps.setString(7,variaveis.getCelular());
            ps.setString(8,variaveis.getCelular2());
            
            ps.executeUpdate();
        } catch (SQLException sqle) {
            throw new Exception("Erro ao atualizar dados: " + sqle);
        } finally {
            ps.close();

E esta é o meu Swing feito no netbens, onde deveria receber os metodos e as variaveis.

try {
            variaveis = new Variaveis();
            metodos = new Metodos();
            
            variaveis.setNome(txtnome.getText());
            variaveis.setEndereco(txtendereco.getText());
            variaveis.setNumero(txtnumero.getText());
            variaveis.setComplemento(txtcomplemento.getText());
            variaveis.setFixo(txtfixo.getText());
            variaveis.setCelular(txtcel.getText());
            variaveis.setCelular2(txtcel2.getText()); 
            
            metodos.alterar(variaveis);
            limparTxt();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Erro ao alterar: " + ex);
        }

Minha classe de variáveis funciona (get e set) eu sei pq meu botão cadastrar esta fazendo o serviço dele e eu chamo a mesma classe.

Não sei oq eu estou errando, pois quando eu vou compilar, não indica erro nenhum porém não altera.

Obrigado a força ai pessoal

5 Respostas

J

Só quero saber onde está o erro na minha implementação,alguem pode ajudar?

ErickRAR

Você está colocando os parametros nos lugares errados. colocando o id no nome, nome no endereço… e celular no id. No final fica WHERE ID=[telefone removido] (o numero do celular). Como provavelmente não tem esse id na tabela, ele não atualizada nada.

O outro erro foi não específicar bem qual é o erro(anda acontece, erro na hora de compilar,gera tal exceção etc), mas deve ser só isso dos parametros mesmo. :stuck_out_tongue:

J

Não deu certo, eu troquei os parâmetros e não funcionou, acho que estou fazendo algo de errado

public void alterar(Variaveis variaveis) throws Exception {
        PreparedStatement ps = connection.prepareStatement("UPDATE cadastrados SET nome= ? endereco=? complemento=? numero=? fixo=? celular1=? celular2= ? where id= ?");
        try {
            ps.setString(1, variaveis.getNome());
            ps.setString(2, variaveis.getEndereco());
            ps.setString(3, variaveis.getComplemento());
            ps.setString(4, variaveis.getNumero());
            ps.setString(5,variaveis.getFixo());
            ps.setString(6,variaveis.getCelular());
            ps.setString(7,variaveis.getCelular2());
            ps.setString(8, variaveis.getId());
            
            ps.executeUpdate();
            JOptionPane.showMessageDialog(null, "Dados alterados com sucesso!");
        } catch (SQLException sqle) {
            JOptionPane.showMessageDialog(null, "Erro ao editar dados.");
            ps.close();
        }
    }

To apanhando feio para este codigo,,,eu sinto que é burrice minha mais não vem o erro,,sei que é coisa bem básica.
deem uma força ai, vlw

pmlm

Talvez se não esconderes o erro consigas saber o que está a acontecer…

} catch (SQLException sqle) {  
            JOptionPane.showMessageDialog(null, "Erro ao editar dados.");  
            sqle.printStackTrace();
            ps.close();  
        }
J

Consegui achar o Problema,eu tinha colocado tudo certo,e realmente fui nuub de não ter ajeitado os parâmetros, porém quando arrumei, ainda persistia o erro, ai foi que eu bati cabeça e vi realmente o erro, ele estava no meu swing, pois eu me esqueci de “setar” para o Textfield o Id do meu projeto.

Muita falta de atenção minha.

Obrigado pelo apoio mais uma vez

Criado 23 de fevereiro de 2014
Ultima resposta 25 de fev. de 2014
Respostas 5
Participantes 3