Exibindo resultado de select (Hibernate) em um JTable

1 resposta
M

Olá pessoal,

acredito que esta seja uma dúvida básica. Até já achei algumas receitinhas mas nenhuma delas surtiu efeito.

Configurei o Hibernate como descrito no site do NetBeans (http://netbeans.org/kb/docs/java/hibernate-java-se_pt_BR.html).

Tenho uma tela de CadastrodeClientes a qual tem as ações de salvar, listar e excluir os cadastros.

Os dados estão sendo armazenados e excluidos do Derby como esperado, somente não consigo listar os cadastros no jtable que criei.

Antes recebia um nullPointerException e agora java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to cliente.entity.Cliente.

Em meu arquivo cliente.hbm.xml tenho faço a seguinte consulta:
<sql-query name="Cliente.findAll">
      <![CDATA[ select * FROM cliente]]>
  </sql-query>
O seguinte método é responsável por chamar a consulta e criar o jTable:
private void preencherTabela() {
        List<Cliente> clientes =  new ArrayList<Cliente>();
        Cliente cliente;
        Object[] linhas = new Object[7];
        int qtClientes;
        DefaultTableModel tbModel = (DefaultTableModel) jtListaCliente.getModel();
        clientes = Dao.buscarQuery("Cliente.findAll");
        //System.out.println(clientes); //Imprime o array de objetos
        qtClientes = clientes.size();
        for (int i = 0; i < qtClientes; i++) {
           
            System.out.println(qtClientes + " - " + i);
            cliente = clientes.get(i);
            cliente = (Cliente) clientes.get(i);
            linhas[0] = cliente.getId();
            linhas[1] = cliente.getNome();
            linhas[2] = cliente.getCpf();
            tbModel.addRow(linhas);
        }

    }

Alguma dica? Este é o modo correto de se fazer esta listagem?

Desde já agradeço a todos.

1 Resposta

R

Supondo que você já tenha um modelo para sua tabela, no frame você pode chamar o dao que vai retornar o list que será preenchido na sua tabela!

Exemplo:

private TableModel getTableModelOrigem() throws Exception {

        OrigemDAO dao = new OrigemDAO();
        return new OrigemTableModel(dao.listarOrigem());

    }
Criado 11 de maio de 2011
Ultima resposta 12 de mai. de 2011
Respostas 1
Participantes 2