Consulta nao funciona

1 resposta
fabiodurgante
tenho uma consulta na classe ClienteDao

   public Cliente Consultar(Integer id) {
        String sql = "SELECT * FROM cliente WHERE id = ?";
        try {
            PreparedStatement stmt = getConexao().prepareStatement(sql);
            stmt.setInt(1, id);
            ResultSet rs = stmt.executeQuery();
            List<Cliente> lista = getCliente(rs);
            if(lista.size() > 0)
                return lista.get(0);
        } catch (SQLException sQLException) {
            System.out.println("Erro ao consultar Cliente");
        }
        return null;        
    }  

o metodo que pega o resultset da pesquisa e coloca em uma lista em ClienteDao

 private List<Cliente> getCliente(ResultSet rs) throws SQLException {
        if(rs == null)
            return null;
        
        List<Cliente> lista = new ArrayList<Cliente>();
        while(rs.next()) {
            Cliente cli = new Cliente();
            cli.setid_cliente(rs.getInt("id_cliente"));
            cli.setNome_Cliente(rs.getString("nome_cliente"));
            cli.setEstado_Cliente(rs.getString("estado_cliente"));
            try {
                cli.setCpf_Cliente(rs.getString("cpf_cliente"));
            } catch (excessao ex) {}
            cli.setData_Cliente(new Date(rs.getDate("data_cliente").getTime()));
            lista.add(cli);
        }
        return lista;
    }


agora no form tenho minha jtable

 private void preencheTabela() {
          DefaultTableModel modelo = new javax.swing.table.DefaultTableModel(
            new Object [][] {},
            new String [] {"Código", "Nome", "Estado", "CPF", "Data"}
        );
    ClienteDao clienteD = new ClienteDao();
    
    tabela.setModel(modelo);
    List<Cliente> lista = clienteD.listar(campo_pra_pesquisa.getText());//aqui pega o campo por parametro pra pesquiza
    for(Cliente cli:lista) {
        modelo.addRow(new String[] {
            cli.getid_cliente().toString(), cli.getNome_Cliente(), cli.getEstado_Cliente(), cli.getCpf_Cliente(), cli.getData_Cliente().toString()
            //cli.getData_Cliente(new Date(rs.getDate("data_cliente").getTime() ))
        });
    }
} 

metodo pra pega a linha selecionada

private Cliente getSelecionado() {
    if(tabela.getSelectedRow() == -1) {
        JOptionPane.showMessageDialog(this, "Selecione uma linha da tabela.",
                "", JOptionPane.ERROR_MESSAGE);
        return null;
    }
    DefaultTableModel modelo = (DefaultTableModel) tabela.getModel();
    Integer id = Integer.parseInt(modelo.getValueAt(tabela.getSelectedRow(), 0).toString());
    System.out.println(id);
    
    ClienteDao cliente = new ClienteDao();
    return cliente.Consultar(id);
}    

e o botao
private void jpesquizarActionPerformed(java.awt.event.ActionEvent evt) {                                           
  preencheTabela();
    jpesquizarActionPerformed(evt);
  
}

mas quando efetua a consulta nao aparece nada na tabela 

Exception occurred during event dispatching:
java.lang.StackOverflowError
        at sun.nio.cs.UTF_8$Decoder.decodeArrayLoop(UTF_8.java:212)
        at sun.nio.cs.UTF_8$Decoder.decodeLoop(UTF_8.java:358)
        at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:544)
        at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:140)
        at java.lang.StringCoding.decode(StringCoding.java:173)
        at java.lang.String.<init>(String.java:444)
        at org.postgresql.core.Encoding.decode(Encoding.java:193)
        at org.postgresql.core.PGStream.ReceiveString(PGStream.java:320)
        at org.postgresql.core.v3.QueryExecutorImpl.receiveFields(QueryExecutorImpl.java:1552)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1394)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)

1 Resposta

fabiodurgante
private void jpesquizarActionPerformed(java.awt.event.ActionEvent evt) {

preencheTabela();

//   jpesquizarActionPerformed(evt);

}
tirei aquela linha agora ta valendo faloww

Criado 10 de dezembro de 2008
Ultima resposta 10 de dez. de 2008
Respostas 1
Participantes 1