2014-10-05 93 views
0

我的問題是,我有一個JTable總是重複打印第一行,並忽略以下數據。我認爲這是問題代碼。JTable重複結果

我做了一個查詢並將其轉換爲一個列表來填充我的JTable。我請你分析我的代碼,看看它是否正確。

try{ 
     EntityManager em = EntityManagerUtil.getEntityManager(); 
     em.getTransaction().begin(); 

     Query query_resultados = em.createQuery("FROM " 
     + "Resultados WHERE res_codigo LIKE "+aux); 

     List<Resultados> lista_resultados = 
       (List<Resultados>) query_resultados.getResultList(); 

     for(int i=0; i<lista_resultados.size(); i++){ 

      Resultados resultado = lista_resultados.get(i); 

      System.out.println("Teste: "+lista_resultados.get(i).getRes_anti_hbc_hbs()); 
      System.out.println("i= "+i); 

      model.addRow(new Object[] {resultado.getRes_anti_hbc_hbs(), 
       resultado.getRes_anticorpos_irregulares(), 
      resultado.getRes_chagas(), resultado.getRes_codigo(), 
      resultado.getRes_data(), resultado.getRes_ggpd(), 
      resultado.getRes_hbs_aq(), resultado.getRes_hcv(), 
      resultado.getRes_hiv(), resultado.getRes_htlv_i_ii(), 
      resultado.getRes_malaria(), resultado.getRes_responsavel(), 
      resultado.getRes_sifilis(), resultado.getRes_t_mancha(), 
      resultado.getRes_tpg()}); 
     } 
    }catch(Exception e){ 
     JOptionPane.showMessageDialog(null,"Erro: "+e); 
    } 
+0

我會研究'query_resultados.getResultList'返回的是什麼,檢查每個循環的結果'Resultados resultado'實際上是返回你認爲應該是的東西。如果失敗,那麼表單模型和/或渲染存在問題,您還沒有提供 – MadProgrammer 2014-10-05 02:04:25

+0

如果您發現問題不在查詢結果中,請發佈[最小,完整和可驗證示例](http: //stackoverflow.com/help/mcve),使用**硬編碼值(即沒有數據庫訪問代碼),這表明問題,所以我們可以測試它。 – 2014-10-05 06:07:08

回答

0

在Java中,通常使用這樣的事情來遍歷Java結果:

Statement stmt = conn.createStatement(); 
ResultSet rs = stmt.executeQuery(query); 
while(rs.next()){ 
    String firstColVal = rs.getString(1); 
} 

rs.next()確保在這一背景下,直到所有的行完成的下一行被取出。