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

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

[code]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();[/code]

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

[code]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);
    }[/code]

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

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

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=88976644874 (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:

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

[code]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();
    }
}[/code]

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

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();  
        }

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