Maks00088
@Maks00088
Обучаюсь Java/JavaEE /Php/Js

Как создать лист обьектов из Result Set?

Вопрос по поводу цикла. Допустим в сэти у меня 4 колонки или же 4 rows.
1.После while(rs.next()) в данном коде-> будут вызваны сеттеры 4 раза и создан один обьект ?
2.Допустим мне нужно создать лист обьектов , не до конца понятна структура Result Set с данными , если кто сможет дать пример кода я буду признателен.
3.next() возврашает true если есть следующая колонка , как проходит логика в данном коде в цикле ?
Создастся ли нужный обьект после первого цикла ?
Company company = beanFactory.getBeanInstance("company",classForMapping);
            while(rs.next()){  // 4 number of columns
                company.setId(rs.getLong("COMPANY_ID"));
                company.setCompName(rs.getNString("COMPANY_NAME"));
                company.setPassword(rs.getNString("COMPANY_PASSWORD"));
                company.setEmail(rs.getNString("COMPANY_EMAIL"));
            }
  • Вопрос задан
  • 227 просмотров
Решения вопроса 1
как-то так
List<Company> list = new ArrayList();
            while(rs.next()){  // 4 number of columns
               Company company = beanFactory.getBeanInstance("company",classForMapping);
                company.setId(rs.getLong("COMPANY_ID"));
                company.setCompName(rs.getNString("COMPANY_NAME"));
                company.setPassword(rs.getNString("COMPANY_PASSWORD"));
                company.setEmail(rs.getNString("COMPANY_EMAIL"));
               list.add(company);
            }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ingush
Сеттеры будут взваны столько, сколько строк возврщаются из БД. Например БД возарвщает 2 строки соответсвующие вашей выборки, следовательно, если есть 4 колонки значит сеттеры будут вызваны 8 раз.
next() возвращает true если за курсором есть еще строка, т.е. если обьяснять с приведеныым примером раннее:
-> (это своего рода курсор
row1
row2
next() будет возращать true два цикла подряд. А здесь уже будет false, потомучто за курсором уже нет строки:
row1
row2
->

Понятно? С каждым вызовом next() курсор смещается вперед, сеттеры возращают данные соответсвующей строки на которую указывает курсор
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
04 мая 2024, в 06:10
4000 руб./за проект
04 мая 2024, в 05:49
10000 руб./за проект
04 мая 2024, в 03:57
10000 руб./за проект