Поместить данные из БД в объекты модели

Есть четыре модели (ClassRoom, Pupil, PupilInClssRoom, Teacher), заполняю таблицы значениями и создаю связи, после этого делаю SELECT запрос на вывод нужных данных.

ResultSet resultSet = super.executeSqlValue(
            "SELECT p.name,p.surname,t.name,t.surname,t.discipline,c.name FROM pupils AS p " +
                    "INNER JOIN pupils_in_class_rooms AS in ON p.id = in.idPupils " +
                    "INNER JOIN teachers AS t ON t.id = in.idTeachers " +
                    "INNER JOIN class_rooms AS c ON c.id = in.idClassRooms");

и вывожу их в консоль

while (resultSet.next()) {

        String name = resultSet.getObject(1).toString();
        String surname = resultSet.getObject(2).toString();
        String nameTwo = resultSet.getObject(3).toString();
        String surnameTwo = resultSet.getObject(4).toString();
        String discipline = resultSet.getObject(5).toString();
        String className = resultSet.getObject(6).toString();
        System.out.println(name + " " + surname + " " + nameTwo + " " + surnameTwo + " " + discipline + " " + className);

Результат работы программы:

Создана таблица pupils_in_class_rooms
Создана таблица pupils
Создана таблица teachers
Создана таблица class_rooms
Создан вшений ключ class_rooms.id <- pupils_in_class_rooms.idClassRooms
Создан вшений ключ pupils.id <- pupils_in_class_rooms.idPupils
Создан вшений ключ teachers.id <- pupils_in_class_rooms.idTeachers
Запись добавлена 1 2A
Запись добавлена 1 Alla Aronova Russian
Запись добавлена 1 Oleg Ahmatov
Запись добавлена 2 Anastatia Davidova
Запись добавлена 3 Stas Shapovalov
Запись добавлена 1 1 1 1
Запись добавлена 2 2 1 1
Запись добавлена 3 3 1 1
Oleg Ahmatov Alla Aronova Russian 2A
Anastatia Davidova Alla Aronova Russian 2A
Stas Shapovalov Alla Aronova Russian 2A

Process finished with exit code 0

Как можно поместить данные из БД в объекты и вывести в консоль?

Класс Pupil

  public class Pupil extends BaseModel {

    private long id;
    private String name;
    private String surname;

    public Pupil(long id, String name, String surname) throws SQLException {
        this.id = id;
        this.name = name;
        this.surname = surname;
        insert();
    }

    public Pupil() {

    }

    public long getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getSurname() {
        return surname;
    }

    public void setId(long id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public void insert() throws SQLException {
        super.executeSqlStatement("INSERT INTO pupils (id,name,surname) VALUES " +
                        "(" + id + ",'" + name + "','" + surname + "')",
                "Запись добавлена " + id + " " + name + " " + surname);
    }

Таблица Pupils

public void selectValue() throws SQLException {

        List<Pupil> pupilList = new LinkedList<Pupil>();
        pupilList.add(new Pupil(1,"hello","world"));
        pupilList.add(new Pupil(2,"hello","world"));
        pupilList.add(new Pupil(3,"hello","world"));

        ResultSet resultSet = super.executeSqlValue("SELECT p.id,p.name,p.surname FROM pupils AS p");

        while (resultSet.next()) { ;

              for (Pupil p : pupilList) {
                 p.setId(resultSet.getInt(1));
                 p.setName(resultSet.getString("name"));
                 p.setSurname(resultSet.getString("surname"));
                 System.out.println(p.getId() + p.getName() + p.getSurname());
                  break;
              }

INSERT вызывается в конструкторе при создании экземпляра


Ответы (1 шт):

Автор решения: Sergey

Элементарно. Вспомните что такое классы в java и как они создаются

public class Pupil {
    private String name;
    ...

    public Pupil(String name, String surname, ...) {
        this.name = name;
        ...
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    
    ...

}

while (resultSet.next()) {
    Pupil pupil = new Pupil(
        resultSet.getObject(1).toString(),
        resultSet.getObject(2).toString(),
        ...
    );
    // можно установить свойства с помощью сетера
    pupil.setClassName(resultSet.getObject(6).toString());
    
    System.out.printf("name %s surname %s ...", pupil.getName(), pupil.getSurname(), ...);
}
→ Ссылка