我知道这应该是简单的,我可能直接盯着这个问题,但我又一次陷入困境,需要代码大师的帮助。
我也尝试从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]
我知道我可以用循环来做到这一点。但我不知道从一列中一次只能一行。任何想法?
p.s我读过api,我不能看到任何合适的东西。
答案 0 :(得分:22)
您应该使用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()]);
答案 1 :(得分:0)
你的意思是:
int i = 0;
ResultSet rs = stmt.executeQuery("select name from users");
while (rs.next()) {
String name = rs.getString("name");
names[i++] = name;
}