A situação do título é bem hipotética e a solução pode ser usada pra pesquisar qualquer tipo de informação cadastrada no banco de dados.
Então pessoal… Estou iniciando estudos em JAVA e procuro compreender como funciona a lógica dessa linguagem estudando na prática e quebrando a cabeça com os erros.
Talvez o método seja errado, mas imploro ajuda de vocês…
Criei um projeto onde se pode cadastrar Clientes (bem clichê) que se comunica com o MySQL e insere os dados direto no banco. Estou agora criando uma nova parte do projeto onde consigo listar os clientes já inseridos no banco e tentando criar um método de pesquisa por nome.
Através de uma JTextField e um JButton para acionar a pesquisa.
Parte do código onde atualizo os cadastros:
private void AtualizaTable() {
Connection con = Conexao.AbrirConexao(); // Usado aqui para abrir conexão
ClienteDAO bd = new ClienteDAO(con);
List<Cliente> lista = new ArrayList<>();
lista = bd.ListarCliente();
DefaultTableModel tbm =
(DefaultTableModel) jTable1.getModel();
while (tbm.getRowCount() > 0){
tbm.removeRow(0);
}
int i = 0;
for (Cliente tab : lista){
tbm.addRow(new String[i]);
jTable1.setValueAt(tab.getCodigo(), i, 0);
jTable1.setValueAt(tab.getNome(), i, 1);
jTable1.setValueAt(tab.getRG(), i, 2);
jTable1.setValueAt(tab.getCPF(), i, 3);
jTable1.setValueAt(tab.getTelefone(), i, 4);
jTable1.setValueAt(tab.getEmail(), i, 5);
i++;
}
}
Já em DAO.ClienteDAO.java
public List ListarCliente() {
String sql = “select idcliente,nome,rg,cpf,telefone,email from cliente”;
List lista = new ArrayList<>();
try {
PreparedStatement ps = getCon().prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if (rs != null) {
while (rs.next()) {
Cliente a = new Cliente();
a.setCodigo(rs.getInt(1));
a.setNome(rs.getString(2));
a.setRG(rs.getString(3));
a.setCPF(rs.getString(4));
a.setTelefone(rs.getString(5));
a.setEmail(rs.getString(6));
lista.add(a);
}
return lista;
} else {
return lista;
}
} catch (SQLException e) {
return null;
}
}
Pois bem… esse é o método de atualizar e listar os clientes… Como faço um método para pesquisar por nome que consiga capturar o texto de uma JTextField e ser acionado por um botão ou um key pressed?
E o que devo adicionar na classe DAO.ClienteDAO.java ?