2015-10-29 91 views
0

我正在嘗試用一個SQL表格填充一個String []對象的數組列表。我能夠使用此代碼獲取我的表格的標題。但是,當我試圖創建我的行來填充表,數組不添加到數組列表。用SQL表填充數組列表String []與SQL表

  while (rs.next()) { 
       String[] row = new String[colCount]; 
       for (int j = 0; j <= colCount; j++) { 
        row[j] = rs.getString(j+1); 
       } 
       data.add(row); 
      } 
     } catch (SQLException ex) { 

     } 
     System.out.println(data.size()); 

由於某些原因,當我把「data.add(row);」語句在for循環中,它只顯示相同的行,但是多次循環。但它不能在for之外工作(我想把它放在for循環之後)。我在輸出列表的大小到控制檯,它只是返回0

+1

您忽略了任何SQLException並繼續發生,就像沒有發生任何重要事件一樣。這個不對。你確定沒有人被拋出?確保在'catch'塊內添加'拋出新的RuntimeException(ex);'。它必須停止程序並在控制檯中輸出問題的答案(例外消息和堆棧跟蹤)。 – BalusC

回答

0
String[] row = new String[colCount]; 
for (int j = 0; j <= colCount; j++) { 
    row[j] = rs.getString(j+1); 
} 
      data.add(row); 

親愛的朋友,你爲什麼決定寫「Ĵ< = colCount」同時,你創造了「J = 0」 。所以你的代碼會拋出「SqlException」。由於結果集的最後一個元素的索引是「colCount」,但是您的循環通過索引等於j + 1,所以它意味着等於「colCount + 1」。

如您所知,您可以嘗試捕獲SQLException,但是您什麼都不做。因此,當resultset的第一行和j = colCount + 1時,您的代碼已失敗。它不能添加任何內容。

+0

非常感謝!我最終修復了索引,它工作正常。 – Nascosto