Хранение Набора результатов в массив

я знаю, что это должно быть просто, и я, вероятно, смотрю прямо на проблему, но еще раз я застреваю, и нуждаются в помощи гуру кода.

Я пробую, также берут одну строку из столбца в 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, я jsut наклон, видят что-либо, что соответствует.

6
задан OVERTONE 23 April 2010 в 15:48
поделиться

2 ответа

Вы должны использовать 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()]);
23
ответ дан 8 December 2019 в 05:20
поделиться

Возможно, вы имели в виду что-то вроде:

int i = 0;
ResultSet rs = stmt.executeQuery("select name from users");
while (rs.next()) {
    String name = rs.getString("name");
    names[i++] = name;
}
0
ответ дан 8 December 2019 в 05:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: