Поместить данные из БД в объекты модели
Есть четыре модели (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(), ...);
}