2015-02-09 88 views
0

我是hibernate的新手。我正在開發使用休眠的swing應用程序。我已經創建瞭如下方法來填寫JTable在休眠中使用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

qhen你運行這段代碼會發生什麼?你確定把'new Object [0] [0]'作爲參數傳遞給你的DefaultTableModel是個好主意嗎? – StephaneM 2015-02-09 08:32:07

回答

2

我從來沒有用過Hibernate。從你的代碼看來,Hibernate作爲查詢的結果返回「CustomerBean」對象。如果是這樣,那麼只需將CustomerBean對象存儲在TableModel中。然後,您可以使用使用反射的自定義TableModel來訪問CustomBean類的屬性。

檢查出Bean Table Model爲支持此類功能的TableModel。

+0

感謝您的回覆 – user3787163 2015-02-11 18:31:03