索引超出范围的错误

时间:2013-12-12 13:43:35

标签: java sql sqlite resultset

我正在计算并抓取数据库表中的所有columnNames,现在我试图通过使用values.add(rs.getString(ar.get(i)))来获取这些列中的每个值。  虽然我收到索引出界错误,我不知道如何解决它?任何帮助表示赞赏!

 for ( i = 1; i < columnCount + 1; i++ ) {
   ColumnNames = rsmd.getColumnName(i);
   ar.add(ColumnNames);
   System.out.println(ar);   
 }
 model.setColumnCount(columnCount);

 while ( rs.next() ) {
   // values.add(rs.getString(ar.indexOf(i)));
   values.add(rs.getString(ar.get(i)));
   System.out.println(values);

   String value1 = "";
   String value2 = "";
   String value3 = "";
   String value4 = "";

   value1 = rs.getString(1);
   value2 = rs.getString(2);
   value3 = rs.getString(3);
   value4 = rs.getString(4);

   model.addRow(new Object[] {value1,  value2, value3, value4});

}

2 个答案:

答案 0 :(得分:0)

列表通常从0(而不是1)开始,因此您将始终领先(因为您从1开始)

如果您将for循环更改为:

for ( i = 0; i < columnCount + 1; i++ )

这应该有效:)

答案 1 :(得分:0)

索引越界意味着您正在访问一个不存在的数组索引值,例如存在 int array [] = int [10]; 如果我访问数组[9]它会没问题,但如果我访问数组[10]那么它将给出该错误。 所以现在检查你的程序并进行调试。 在这里我不知道什么是columnCount,我也无法在这里调试