我是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循环中写什么,以便它适用于所有类。因为每个班级都会有不同的。属性。
任何帮助将不胜感激。 感谢
答案 0 :(得分:2)
我从未使用过Hibernate。从您的代码看起来Hibernate正在返回&#34; CustomerBean&#34;对象作为查询的结果。如果是这样,那么只需将CustomerBean对象存储在TableModel中。然后,您可以使用使用反射的自定义TableModel来访问CustomBean类的属性。
查看Bean Table Model以获取支持此类功能的TableModel。