Problema com pesquisa no banco e mostrar em uma jTable

2 respostas
M

Quando tem apenas um registro inserido no banco funciona tudo ok.Porem quando coloco mais um acontece um problema.
Por exemplo tinha um registro assim : Nome : Gabriel , Mesa : Mesa 3 , Numero : 15, : Pedido : 1-Bauru.Ai quando insiro outro com o nome de Pedro e Mesa 4 por exemplo todos os meus registro ficam com esse nome e a mesa…
Vi no mysql direto e esta normal entao acredito que o erro esteja no meu codigo.

Metodo na classe DAO…

public List<InformacoesCliente> getLista(String nome) throws SQLException { String sql ="select * from pedido where nome like ?"; PreparedStatement stmt = conexaoDao.prepareStatement(sql); stmt.setString(1, nome); ResultSet rs = stmt.executeQuery(); List<InformacoesCliente> minhaLista = new ArrayList <InformacoesCliente>(); while(rs.next()){ InformacoesCliente i1 = new InformacoesCliente(); i1.setCogigopedido(Integer.parseInt(rs.getString("codigopedido"))); i1.setNome(rs.getString("nome")); i1.setMesa(rs.getString("mesa")); i1.setPedido(rs.getString("pedido")); i1.setNumeroCel(rs.getString("numerocelular")); minhaLista.add(i1); } rs.close(); stmt.close(); return minhaLista; }

Metodo que esta dentro do botao :

public void listarPedidos() throws SQLException{ pedidoDao dao = new pedidoDao(); clientes = dao.getLista("%"+jTextFieldPesquisar.getText()+"%"); mostraPesquisa(clientes); }

Metodo mostraPesquisa :

private void mostraPesquisa(List<InformacoesCliente> clientes) { while(tmPedido.getRowCount()>0){ tmPedido.removeRow(0); } if(clientes.isEmpty()){ JOptionPane.showMessageDialog(null, "Nenhum pedido cadastrado!"); } else{ String[] linha = new String[]{null,null,null,null,null}; for (int i = 0 ;i < clientes.size(); i++){ tmPedido.addRow(linha); tmPedido.setValueAt(clientes.get(i).getCogigopedido(), i, 0); tmPedido.setValueAt(clientes.get(i).getNome(), i, 1); tmPedido.setValueAt(clientes.get(i).getMesa(), i, 2); tmPedido.setValueAt(clientes.get(i).getNumeroCel(), i, 3); tmPedido.setValueAt(clientes.get(i).getPedido(), i, 4); } } }


A imagem no programa é o que esta acontecendo , e no prompt o que era pra acontecer…

2 Respostas

M

Ninguem ? =X

ViniGodoy

Tente colocar a linha 09 do mostraPesquisa dentro do for.

Ou melhor ainda… crie um TableModel para a sua lista de pedidos.
Afinal, de nada adianta separar em “pedidoDao”, se quando chega na tabela você quebra totalmente o MVC.

Criado 20 de julho de 2012
Ultima resposta 21 de jul. de 2012
Respostas 2
Participantes 2