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)
Consulta nao funciona
1 Resposta
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