我正在尝试检查表中的所有帐户名,然后将它们存储到字符串数组中。
目前我正在使用这个:
for(int Rowi = 0; Rowi < rowCount + 1; Rowi ++){
rs = stmt.executeQuery("SELECT AccountName FROM accounts WHERE AccountID = " + Rowi);
while(rs.next()){
String test = rs.getString("AccountName");
System.out.println("asd: " + test);
accounts[Rowi] = test;
}
}
for(int i = 0; i < rowCount; i ++){
System.out.println("SAVED INFO: " + accounts[rowCount]);
}
这是我得到的结果:
asd: FatalMind
asd: Shurin
asd: test
SAVED INFO: test
SAVED INFO: test
SAVED INFO: test
我不明白为什么它正确地逐行拉出每个记录,但不像我告诉它那样保存它,它只保存所有索引中的最后一个值。显然我没有做对。
答案 0 :(得分:4)
在上一个循环中,您需要使用i
索引帐户数组,而不是rowCount
。
所以改变
System.out.println("SAVED INFO: " + accounts[rowCount]);
到
System.out.println("SAVED INFO: " + accounts[i]);
^^^
答案 1 :(得分:1)
因为rowCount
在你的循环中没有改变:
for(int i = 0; i < rowCount; i ++){
System.out.println("SAVED INFO: " + accounts[rowCount]);
}
我假设rowCount
对应于最后一个索引。所以你告诉它在最后一个索引上打印三次值。 (或者,更具体地说,rowCount
次。(
我认为您打算使用i
代替:
for(int i = 0; i < rowCount; i ++){
System.out.println("SAVED INFO: " + accounts[i]);
}