Caras na minha saga em busca de conhecimento sobre mvc, tablemodel e etc. Me deparei com um entrave.
No meu programa de estudo (Fichas DnZefinha), tenho um internalFrame que lança um novo registro no banco:
ManipulacaoClienteGui.java
public Cliente getCliente(){
Cliente cliente = new Cliente();
cliente.setNome(tfNome.getText());
cliente.setCpf(tfCPF.getText());
cliente.setEndereco(tfEndereco.getText());
cliente.setTelefone(tfTelefone.getText());
return cliente;
}
private void bOKActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Cliente c = getCliente();
try {
new ClienteDao().inserirCliente(c);
ClientesGUI.dtm.addRow(c);
} catch (SQLException ex) {
Logger.getLogger(ManipulacaoClienteGUI.class.getName()).log(Level.SEVERE, null, ex);
}
limparCampos();
}
na minha ClienteTableModel.java tenho o método que adiciona a linha:
public void addRow(Cliente cliente){
listaClientes.add(cliente);
int ultimoIndice = getRowCount()-1;
this.fireTableRowsInserted(ultimoIndice, ultimoIndice);
}
Agora segue o meu problema:
Quando clico no botão OK do InternalFrame o código não captura o id_Cliente
A linha é adicionada na tabela, mas ela não captura o idCliente fica ± assim:
id_Cliente | Nome | cpf | Endereco | telefone |
fulano 090909099 Rua A 909090909
Pronto, se eu clicar no botão excluir da minha aplicação ela retorna essa mensagem:
DELETE FROM cliente WHERE id_cliente = null
mas se eu fechar o InternalFrame que contém a tabela e abri-la de novo:
id_Cliente | Nome | cpf | Endereco | telefone |
20 fulano 090909099 Rua A 909090909
a linha e atualizada na tabela e quando mando excluir:
DELETE FROM cliente WHERE id_cliente = 20
Exclui normalmente. A minha dúvida é: Como faço para capturar o id_Cliente do BD. Estou usando um banco H2database, com o campo id_cliente autoencrement tipo Long.
Muito obrigado pelas respostas.