我正在计算并抓取数据库表中的所有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});
}
答案 0 :(得分:0)
列表通常从0(而不是1)开始,因此您将始终领先(因为您从1开始)
如果您将for循环更改为:
for ( i = 0; i < columnCount + 1; i++ )
这应该有效:)
答案 1 :(得分:0)
索引越界意味着您正在访问一个不存在的数组索引值,例如存在 int array [] = int [10]; 如果我访问数组[9]它会没问题,但如果我访问数组[10]那么它将给出该错误。 所以现在检查你的程序并进行调试。 在这里我不知道什么是columnCount,我也无法在这里调试