Veja eu passo todos os componentes da consulta para o editar como mostra aqui nos código.
Aqui minha consulta onde eu clica em editar e passa todos os valores para o outro jfreme editar
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
int codigo = (int)jTTabela.getModel().getValueAt(jTTabela.getSelectedRow(),0);
String nome = (String)jTTabela.getModel().getValueAt(jTTabela.getSelectedRow(),1);
String telefone = (String)jTTabela.getModel().getValueAt(jTTabela.getSelectedRow(),2) ;
String cpf = (String)jTTabela.getModel().getValueAt(jTTabela.getSelectedRow(),3) ;
String email = (String)jTTabela.getModel().getValueAt(jTTabela.getSelectedRow(),4);
String datanascimento = (String) jTTabela.getModel().getValueAt(jTTabela.getSelectedRow(),5) ;
String observacao =(String)jTTabela.getModel().getValueAt(jTTabela.getSelectedRow(),6 );
String endereco = (String)jTTabela.getModel().getValueAt(jTTabela.getSelectedRow(),7);
String cidade = (String)jTTabela.getModel().getValueAt(jTTabela.getSelectedRow(),8);
String uf = (String)jTTabela.getModel().getValueAt(jTTabela.getSelectedRow(),9);
janelaEditarCliente jc = new janelaEditarCliente(codigo,nome, telefone,cpf,email, datanascimento,observacao,endereco,cidade,uf);
jc.setVisible(true);
}
Aqui seria meu jframe editar,meu id já esta sendo passado,n precisa esta num textfield
public final class janelaEditarCliente extends javax.swing.JFrame {
public janelaEditarCliente() {
initComponents();
}
public janelaEditarCliente(int id,String nome,String telefone,
String cpf,String email,String datanascimento,
String observacao,String endereco,String cidade,String uf) {
initComponents();
this.jTNome.setText(nome);
this.jFTelefone.setText(telefone);
this.jFCPF.setText(cpf);
this.jTEmail.setText(email);
jFDatanascimento.setText(datanascimento);
this.jTObservacao.setText(observacao);
this.jTEndereco.setText(endereco);
this.jTCidade.setText(cidade);
this.jComboBoxUf.setSelectedItem(uf);
Aqui meu dao q altera
public void altera(Cliente c1) throws SQLException{
String sql = "update cliente set cliente.nome =?,"+
"cliente.telefone =?,cliente.cpf =? , cliente.email =?,cliente.datanascimento = ?, cliente.observacao=? "+
" where cliente.codcliente = cliente.codcliente= ?";
try (PreparedStatement stmt = conexao.prepareStatement(sql)) {
stmt.setString(1,c1.getNome());
stmt.setString(2,c1.getTelefone());
stmt.setString(3,c1.getCpf());
stmt.setString(4,c1.getEmail());
stmt.setString(5,c1.getDataFormatada());
stmt.setString(6, c1.getObservacao());
stmt.setInt(7,c1.getCodcliente());
System.out.print(stmt);
//Executa o código sql
stmt.execute();
}
Aqui meu construtor altera
public void altera(String nome,String telefone,String cpf,String email,Date datanascimento,String observacao,String endereco,String cidade,String uf) throws SQLException {
System.out.println("Controlador Alterar");
Endereco novoEndereco = new Endereco();
novoEndereco.setEndereco(endereco) ;
novoEndereco.setCidade(cidade) ;
novoEndereco.setUf(uf) ;
Cliente novoCliente = new Cliente();
novoCliente.setNome(nome) ;
novoCliente.setTelefone(telefone);
novoCliente.setCpf(cpf);
novoCliente.setEmail(email);
novoCliente.setDatanascimento(datanascimento);
novoCliente.setObservacao(observacao);
novoCliente.setEndereco(novoEndereco);
ClienteDAO dao = new ClienteDAO();
dao.altera(novoCliente);
}
Agora me diz como que ele não estaria pegando o valor do código?
Talvez seja o método altera ,pq esta muito estranho, esta tudo certo ao meu ver.