数组中的复制值

时间:2013-11-07 17:17:23

标签: java mysql

我正在尝试检查表中的所有帐户名,然后将它们存储到字符串数组中。

目前我正在使用这个:

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

我不明白为什么它正确地逐行拉出每个记录,但不像我告诉它那样保存它,它只保存所有索引中的最后一个值。显然我没有做对。

2 个答案:

答案 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]);
}