Consultar Dados em Java

Pessoal boa tarde esto querendo fazer uma consulta em java, mas ele não retorna essa minha consulta irei mostrar meu codigo abaixo:
Crio um metodo para consultar os dados pelo nome ou cnpj com um metodo com dois parametros e na hora de chamar no botão, chamo o metodo e passo como parametros os valores que o usuario vai digitar
Pego os dados do banco passo pro objeto e depois seto no textFields.

MAs ele nao retorna nenhum valor nada, poderiam me ajuda ?

idenpublic Contas pesquisaContas(String nome,String cnpj){
  Contas cont = new Contas();
     
    
     try {
        con = Conecta.conexao();
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(CpDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
     
    
    if(!"".equals(nome)){
        
       try{
     String sql="SELECT * FROM tb_cp where cp_nome like  '%" + nome +"%' or  cp_cnpj'%" + cnpj+"'";
           
      Statement statement = con.createStatement();     
     
 ResultSet rs = statement.executeQuery(sql);    
      
        if(rs.next()){
       
       cont.setCp_cnpj(rs.getString("cp_cnpj"));
       cont.setCp_nomefantasia(rs.getString("cp_nomefantasia"));
        cont.setCp_fornecedor(rs.getString("cp_fornecedor"));
         cont.setCp_dtpag(rs.getDate("cp_dtpag"));
        cont.setCp_dtvenc(rs.getString("cp_dtvenc"));
        cont.setCp_valor(rs.getDouble("cp_valor"));
           cont.setCp_nome(rs.getString("cp_nome"));
           cont.setCp_situacao(rs.getString("cp_situacao"));
                   btnPago.setSelected(cont.getCp_situacao()!=null && cont.getCp_situacao().indexOf("Pago")>=0);
  btnPrazo.setSelected(cont.getCp_situacao()!=null && cont.getCp_situacao().indexOf("Prazo")>=0);
    btnVencido.setSelected(cont.getCp_situacao()!=null && cont.getCp_situacao().indexOf("Vencido")>=0);
   
    txtCnpj.setText(cont.getCp_cnpj());
    txtNomeFantasia.setText(cont.getCp_nomefantasia());
   txtFornecedor.setText(cont.getCp_fornecedor());
    txtValor.setText(String.valueOf(cont.getCp_valor()));
   jDateChooser3.setDate(cont.getCp_dtpag());
    txt_vencimento.setText(cont.getCp_dtvenc());
     txtNome1.setText(cont.getCp_nome());
      
   

        }
    }catch(SQLException ex){
        JOptionPane.showMessageDialog(null, "Produto não encontrada erro" +  ex);
    } 
    } else{
        JOptionPane.showMessageDialog(null, "Não há dados para a pesquisa! \nTente novamente...");
    } 
  
    return cont;
}
1 curtida

Ta faltando um like aí

select * from tb_cp where cp_nome like ‘%a%’ or cp_cnpj like ‘%3%’

1 curtida

Aproveita e muda de Statement para PreparedStament, evite concatenações no seu SQL, você corre risco de SQL injection

mas ai no caso como eu iria tirar essas concatenações no meu comando sql que eu coloquei acima, porque eu passei como parametro no metodo o nome e o cnpj

Sua query fica assim…

String sql = "SELECT * FROM tb_cp WHERE cp_nome LIKE ? OR cp_cnpj LIKE ?";

E seu tratamento fica assim…

PreparedStatement pstm = con.prepareStatement(sql);
pstm.setString("%" + nome + "%");
pstm.setString("%" + cnpj + "%");

ResultSet rs = pstm.executeQuery();

entendi man, vlw , outra duvida como posso abrir um frame, através de um atalho exemplo.

Frame Clientes, quero abrir esse frame acionado o alt+a,como faço isso ?

Ai ja é outro tópico, e desktop eu não manjo muito…