Boa Tarde,
Sou iniciante em java e estou tentando criar uma aplicação para cadastro de clientes usando a IDE NetBeans. Através de pesquisas, consegui criar o cadastro de clientes e o método para consultar o mesmo, porém, ao tentar exibir o retorno da consulta em alguns JTextFields na classe que contem o botão de Consulta, o valor capturado retorna como nulo. Já tentei varias maneiras de corrigir isso, porém não obtive sucesso. Gostaria de uma ajuda:
Segue Código:
Class Cliente
public class Cliente {
private int id;
private String nome;
private String cpf;
private String endereco;
private String numero;
private String complemento;
private String telefone;
private String celular;
public Cliente() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome ;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
}``
Classe ClienteDao
public class ClienteDao {
private final String LISTBYID = "SELECT * FROM cliente WHERE ID=?";
...
public Cliente getClienteById(int id) {
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
Cliente cliente = new Cliente();
try {
conn = FabricaConexao.getConexao();
pstm = conn.prepareStatement(LISTBYID);
pstm.setInt(1, id);
rs = pstm.executeQuery();
while (rs.next()) {
cliente.setId(rs.getInt("id"));
cliente.setNome(rs.getString("nome"));
cliente.setCpf(rs.getString("cpf"));
cliente.setEndereco(rs.getString("endereco"));
cliente.setNumero(rs.getString("numero"));
cliente.setComplemento(rs.getString("complemento"));
cliente.setTelefone(rs.getString("telefone"));
cliente.setCelular(rs.getString("celular"));
}
FabricaConexao.fechaConexao(conn, pstm, rs);
} catch (ClassNotFoundException | SQLException e) {
JOptionPane.showMessageDialog(null, "ERRO CONSULTA " + e.getMessage());
}
return cliente;
}
}
Até aqui ele funciona corretamente, consegue efetuar a consulta no banco de dados e armazenar os valores nas variáveis. O problema é na hora de exibir no JTextField.
Tela com os JTextFields
public class TelaCadastroClienteInternalFrame extends javax.swing.JInternalFrame {
/**
* Creates new form TelaCadastroClienteInternalFrame
*/
public TelaCadastroClienteInternalFrame() {
initComponents();
...
}
private void btnConsultarClienteActionPerformed(java.awt.event.ActionEvent evt) {
Cliente cliente = new Cliente();
ClienteDao clientedao = new ClienteDao();
clientedao.getClienteById(Integer.parseInt(txtIdCliente.getText()));
txtIdCliente.setText(Integer.toString(cliente.getId()));
txtNomeCliente.setText(cliente.getNome());
txtCpfCliente.setText(cliente.getCpf());
txtEnderecoCliente.setText(cliente.getEndereco());
txtNumeroCliente.setText(cliente.getNumero());
txtComplCliente.setText(cliente.getComplemento());
txtTelefoneCliente.setText(cliente.getTelefone());
txtCelularCliente.setText(cliente.getCelular());
}
}