将结果集存储到数组中

OVE*_*ONE 6 java sql jdbc resultset

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

即时尝试从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)
           {

           }
Run Code Online (Sandbox Code Playgroud)

creatConnection是一个已经定义的方法,可以完成它显然做的事情.我创建了我的结果集,而另一个,我将该列的字符串存储到一个数组中.然后打印出来以便进行测量.也确保它在那里.

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

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

然后第1列第2行进入[2]

我知道我可以用循环做到这一点.但我不知道从一列中一次只能一行.有任何想法吗?

ps我读过api,我不能看到任何合适的东西.

Kev*_*ock 23

您应该使用一个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()]);
Run Code Online (Sandbox Code Playgroud)