Listar atraves de uma pesquisa do CPF

3 respostas Resolvido
Stefany_Silva

oi, estou fazendo um ArryList para listar o que for capturado, e apos isso fazer uma pesquisa especifica utilizando o cpf para mostrar os dados do usuario correspondente, porem foi uma primeira vez e agora quando clico no meu button para pesquisar todos os dados da tabela somem e não retorna a pesquisa. alguem poderia me ajudar por faovr.

//para fazer pesquisa
public ListpesquisarCpf (String pesquisa){

Connection con;
        con = ConnectionFactory.getConnection();
        PreparedStatement stmt = null;
        ResultSet rs = null;
        
    List <cadastro> usuarios = new ArrayList<>();
    try {
        stmt = con.prepareStatement("SELECT * FROM usuario WHERE cpf=? ");
        stmt.setString(1,pesquisa);
        rs = stmt.executeQuery();
        
        while (rs.next()) {
            
           cadastro  usuario = new cadastro();
            usuario.setIdusuario(rs.getInt("idusuario"));
            usuario.setNome(rs.getString("nome"));
            usuario.setCpf(rs.getString("cpf"));
            usuario.setEmail(rs.getString("email"));
            usuario.setTelefone(rs.getString("telefone"));
            usuario.setDescricao(rs.getString("descricao"));
        
            usuarios.add(usuario);
            
        }
    } catch (SQLException ex) {
        Logger.getLogger(UsuarioDao.class.getName()).log(Level.SEVERE, null, ex);
    }
    return usuarios;
}
//metodo para  listar a pesquisa

public void fazerPesquisa (String pesquisa) {

DefaultTableModel modelo = (DefaultTableModel) tbusuario.getModel();

modelo.setNumRows(0);
UsuarioDao usuario = new UsuarioDao();

  for (cadastro p : usuario.pesquisarCpf(pesquisa)) {
        modelo.addRow(new Object[]{
            p.getIdusuario(),
            p.getNome(),
            p.getCpf(),
            p.getEmail(),
            p.getTelefone(),
            p.getDescricao(),
           
                
     });
  }

// botao de pesquisa por cpf

fazerPesquisa(jTextField1.getText());

3 Respostas

darlan_machado

Se os dados desaparecem e não apresenta nada, provavelmente ocorreu alguma exceção. Seria interessante checar o log.

J
Solucao aceita

???

se você está buscando por cpf acredito que  poder ter um resultado, então você não precisa retornar um List, mas sim simplesmente um objeto de Usuario.

algo assim:

public Usuario buscarUsuarioPorCpf(String pesquisa){

Connection con;

con = ConnectionFactory.getConnection();

PreparedStatement stmt = null;

ResultSet rs = null;
try {
    stmt = con.prepareStatement("SELECT * FROM usuario WHERE cpf=? ");
    stmt.setString(1,pesquisa);
    rs = stmt.executeQuery();
    
    if (rs.next()) {
        
       cadastro  usuario = new cadastro();
        usuario.setIdusuario(rs.getInt("idusuario"));
        usuario.setNome(rs.getString("nome"));
        usuario.setCpf(rs.getString("cpf"));
        usuario.setEmail(rs.getString("email"));
        usuario.setTelefone(rs.getString("telefone"));
        usuario.setDescricao(rs.getString("descricao"));
    
        return usuario;
    
    }
ruturn null;

} catch (SQLException ex) {

Logger.getLogger(UsuarioDao.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

ou algo parecido

RobsonSPires

Vamos lá, outras dicas/sugestões:
A busca é pelo cpf completo? se sim ele está somente números ou está formatado no bando de dados?
Quer uma busca incremental? use

"SELECT * FROM usuario WHERE cpf like ?% "

e peça para mostrar o erro de SQLException em uma mensagem para ver se tem algo errado.

Criado 6 de maio de 2019
Ultima resposta 8 de mai. de 2019
Respostas 3
Participantes 4