to fazendo meu primeiro programa com interface, mas tem um problema que eu não consigo resolver… é no botão alterar, na hora de setar o ID(eu acho que o problema é aqui)
codigo classe DAO:
public void adiciona(Cliente c1) throws SQLException {
String sql = "insert into cliente (nome , endereco, telefone, cpf, identidade, referencia)" +
"values (?, ?, ?, ?, ?, ?)";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setString(1, c1.getNome());
stmt.setString(2, c1.getEndereco());
stmt.setString(3, c1.getTelefone());
stmt.setString(4, c1.getCpf());
stmt.setString(5, c1.getIdentidade());
stmt.setString(6, c1.getReferencia());
stmt.execute();
stmt.close();
}
public void altera(Cliente c1) throws SQLException {
String sql = "Update cliente set nome=?, endereco=?, telefone=?, cpf=?, identidade=?, referencia=? where id=?";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setLong(1, c1.getId());
stmt.setString(2, c1.getNome());
stmt.setString(3, c1.getEndereco());
stmt.setString(4, c1.getTelefone());
stmt.setString(5, c1.getCpf());
stmt.setString(6, c1.getIdentidade());
stmt.setString(7, c1.getReferencia());
stmt.execute();
stmt.close();
}
public void remove(Cliente c1) throws SQLException {
String sql = "delete from cliente where id=?";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setLong(1, c1.getId());
stmt.execute();
stmt.close();
}
Parte Grafica:
private void jBSalvarActionPerformed(java.awt.event.ActionEvent evt) {
if (VerificaDados()) {
cadastro();
desabilitaDados();
}
}
private void jBExcluirActionPerformed(java.awt.event.ActionEvent evt) {
int resp = JOptionPane.showConfirmDialog(this, "Deseja realmente excluir este cliente?",
"Confirmação", JOptionPane.YES_NO_OPTION);
if(resp == JOptionPane.YES_NO_OPTION){
ClienteDao dao;
try {
dao = new ClienteDao();
dao.remove(clientes.get(jTabela.getSelectedRow()));
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro no Botão jBExcluir" + ex);
}
}
}
private void jBAlterarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int resp = JOptionPane.showConfirmDialog(this, "Deseja realmente alterar este cliente?",
"Confirmação", JOptionPane.YES_NO_OPTION);
if(resp == JOptionPane.YES_NO_OPTION){
alterar();
ClienteDao dao;
try {
dao = new ClienteDao();
dao.altera(clientes.get(jTabela.getSelectedRow()));
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro no Botão jBAlterar" + ex);
}
}
}
public void alterar(){
try {
Cliente c1 = new Cliente();
c1.setNome(jTNome.getText());
c1.setEndereco(jTEndereco.getText());
c1.setTelefone(jTTelefone.getText());
c1.setCpf(jTCPF.getText());
c1.setIdentidade(jTIdentidade.getText());
c1.setReferencia(jTReferencia.getText());
ClienteDao dao = new ClienteDao();
dao.altera(c1);
} catch (SQLException ex) {
Logger.getLogger(jTCliente.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void cadastro() {
try {
Cliente c1 = new Cliente();
c1.setNome(jTNome.getText());
c1.setEndereco(jTEndereco.getText());
c1.setTelefone(jTTelefone.getText());
c1.setCpf(jTCPF.getText());
c1.setIdentidade(jTIdentidade.getText());
c1.setReferencia(jTReferencia.getText());
ClienteDao dao = new ClienteDao();
dao.adiciona(c1);
} catch (SQLException ex) {
Logger.getLogger(jTCliente.class.getName()).log(Level.SEVERE, null, ex);
}
}
o remove e o salvar estão perfeitos, o problema é só no alterar, ele não vai de jeito nenhum.