2011-01-02 2 views
2

Простой здесь, я подключился к sqldb и из своей базы данных Я извлекаю строки из таблицы.Добавление элементов из цикла while в ArrayList java

Для каждой строки я хочу сохранить данные на ArrayList. Каждая строка имеет номер в ArrayList.

Это то, что у меня есть до сих пор.

List<DVDProperty> DVDList = new ArrayList<DVDProperty>(); 

DVDProperty context = new DVDProperty(); 

while (res.next()) { 
    int i = res.getInt("idnew_table"); 
    String s = res.getString("dvdName"); 

    context.setDVDId(i); 
    context.setDVDName(s); 

    DVDList.add(context); 
} 

DVDPropery является набор свойств, где я установить свойства со значениями строк таблицы.

У меня есть 2 строки со следующими данными

1 Scarface
2 Аватар

Everytime I Run через петлю мои ArrayList переопределяет 1 Scarface с 2 Аватар дважды

Я хочу добавьте новую строку в мой ArrayList каждый раз , и он не переопределяет

ответ

12

Проигрывать DVDProperty внутри цикла. В настоящее время вы повторно один и тот же экземпляр, и, таким образом, перекрывая его свойства:

while (res.next()) { 
    DVDProperty context = new DVDProperty(); 
    ... 
} 
6

Вы должны создать новый объект типа DVDProperty для каждой записи. В это время вы меняете один и тот же объект (контекст) на каждой итерации. Попробуйте:

List<DVDProperty> DVDList = new ArrayList<DVDProperty>(); 
while (res.next()) { 
    int i = res.getInt("idnew_table"); 
    String s = res.getString("dvdName"); 
    DVDProperty context = new DVDProperty(); 
    context.setDVDId(i); 
    context.setDVDName(s); 
    DVDList.add(context); 
} 
0
Please create new instance of the DVDProperty object in loop everytime it runs the loop. 
Please refer to code snippet below. 

Code 
List<DVDProperty> DVDList = new ArrayList<DVDProperty>(); 
DVDProperty context = null; 
while (res.next()) { 
    int i = res.getInt("idnew_table"); 
    String s = res.getString("dvdName"); 
    context = new DVDProperty(); 
    context.setDVDId(i); 
    context.setDVDName(s); 
    DVDList.add(context); 
} 
Смежные вопросы