8

我知道这应该很简单,我可能直盯着问题,但我又一次陷入困境,需要代码大师的帮助。

我也尝试从 jdbc 的列中取出一行,并将它们放入一个数组中。

我这样做如下:

public void fillContactList()
       {
           createConnection();
           try
           {
               Statement stmt = conn.createStatement();
               ResultSet namesList = stmt.executeQuery("SELECT name FROM Users");
               try
               {
                   while (namesList.next())
                   {
                       contactListNames[1] = namesList.getString(1);
                       System.out.println("" + contactListNames[1]);
                   }   
               }
               catch(SQLException q)
               {

               }
               conn.commit();
               stmt.close();
               conn.close();
           }
           catch(SQLException e)
           {

           }

creatConnection 是一个已经定义好的方法,它可以做它明显做的事情。我创建了我的结果集,而还有另一个结果集,我将该列的字符串存储到一个数组中。然后打印出来以备不时之需。也确保它在那里。

问题是它将整个列存储到contactListNames [1]

我想让它存储 column1 第 1 行到 [1]

然后将第 1 行第 2 列放入 [2]

我知道我可以通过循环来做到这一点。但我也不知道从一列中一次只取一行。有任何想法吗?

ps 我读了api,我看不到任何合适的东西。

4

2 回答 2

26

您应该使用ArrayList提供所有逻辑来自动扩展数组的 an。

List rowValues = new ArrayList();
while (namesList.next()) {
    rowValues.add(namesList.getString(1));
}   
// You can then put this back into an array if necessary
contactListNames = (String[]) rowValues.toArray(new String[rowValues.size()]);
于 2010-04-23T15:57:10.157 回答
0

你的意思是这样的:

int i = 0;
ResultSet rs = stmt.executeQuery("select name from users");
while (rs.next()) {
    String name = rs.getString("name");
    names[i++] = name;
}
于 2010-04-23T15:56:49.890 回答