在Hibernate中使用JTable

时间:2015-02-09 08:01:01

标签: swing hibernate jtable

我是hibernate的新手。我正在使用hibernate开发swing应用程序。我创建了填充JTable的方法,如下所示。

 public static void FillTable(JTable table,String cls){
    SessionFactory sf = ConnectionDao.getSessionFactory();
    Session session = sf.openSession();
    Query query=session.createQuery("from "+cls);//here persistent class name is cls
    ClassMetadata classMetadata = sf.getClassMetadata(cls);
    List l = query.list();
    Object[] columnNames = classMetadata.getPropertyNames();
    DefaultTableModel model = new DefaultTableModel(new Object[0][0],
            columnNames);
    for (int i=0; i<l.size();  i++) {
        CustomerBean cb = (CustomerBean) l.get(i);
        Object[] o = new Object[3];
        o[0] = cb.getCustomerFName();
        o[1] = cb.getCustomerCity();
        o[2] = cb.getCustomerCity();
        model.addRow(o);
    }
    table.setModel(model);
}

上面的方法将JTable和pojo类名称作为参数并填充JTable。我不知道如何使这个方法适用于所有没有的pojo类。属性。我不知道在for循环中写什么,以便它适用于所有类。因为每个班级都会有不同的。属性。

任何帮助将不胜感激。 感谢

1 个答案:

答案 0 :(得分:2)

我从未使用过Hibernate。从您的代码看起来Hibernate正在返回&#34; CustomerBean&#34;对象作为查询的结果。如果是这样,那么只需将CustomerBean对象存储在TableModel中。然后,您可以使用使用反射的自定义TableModel来访问CustomBean类的属性。

查看Bean Table Model以获取支持此类功能的TableModel。