将结果集存储到数组中

我知道这应该是简单的,我可能直接盯着问题,但再一次我卡住了,需要代码大师的帮助。

即时尝试从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,我不能看到任何合适的东西。

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

 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()]); 

你的意思是:

 int i = 0; ResultSet rs = stmt.executeQuery("select name from users"); while (rs.next()) { String name = rs.getString("name"); names[i++] = name; }