sormula | simple (easy) object relational mapping | |
|
One To Many Example
Shows how to insert and select Student objects each with a list of Enrolled courses.
Student.java
public class Student { @Column(primaryKey=true) int studentId; String firstName; String lastName; Date graduationDate; // studentId field establishes one to many relationship by default // since it is same name in both Student and Entrolled classes // use @OneToManyCascade to override defaults List<Enrolled> enrollment; getters/setters for studentId, firstName, lastName, graduationDate, and enrollment... @Override public String toString() { return studentId + " " + firstName + " " + lastName; } } Enrolled.java
public class Enrolled
{
@Column(primaryKey=true)
int enrolledId;
int studentId;
int courseId;
int yr;
int semester;
getters/setters for enrolledId, studentId, courseId, yr, and semester...
@Override
public String toString()
{
return courseId + " " + yr + " " + semester;
}
}
Insert Three Students and Their Courses
ArrayList<Student> list = new ArrayList<>();
ArrayList<Enrolled> enrollment;
Student student;
// student John Miller
student = new Student();
student.setStudentId(9999);
student.setFirstName("John");
student.setLastName("Miller");
list.add(student);
// 1 course for John Miller
enrollment = new ArrayList<>();
enrollment.add(enroll202(student)); // creates Enrolled object for course 202
student.setEnrollment(enrollment);
// student John Smith
student = new Student();
student.setStudentId(8888);
student.setFirstName("John");
student.setLastName("Smith");
list.add(student);
// 2 courses for John Smith
enrollment = new ArrayList<>();
enrollment.add(enroll202(student)); // creates Enrolled object for course 202
enrollment.add(enroll601(student)); // creates Enrolled object for course 601
student.setEnrollment(enrollment);
// student Rita Miller
student = new Student();
student.setStudentId(7777);
student.setFirstName("Rita");
student.setLastName("Miller");
student.setGraduationDate(new GregorianCalendar(2000, 11, 31).getTime());
list.add(student);
// no courses for Rita Miller
// inserts 3 students and their enrolled objects
System.out.println(table.insertAll(list) + " rows inserted");
Output
3 rows inserted Select Students and Their Courses
Database database = new Database(getConnection(), getSchema());
Table<Student> table = database.getTable(Student.class);
System.out.println("table.selectAll():");
for (Student s: table.selectAll())
{
System.out.println(s);
System.out.println(" enrolled:");
for (Enrolled e: s.getEnrollment())
{
System.out.println(" " + e);
}
}
Output
table.selectAll(): 7777 Rita Miller enrolled: 8888 John Smith enrolled: 202 2011 1 601 2012 2 9999 John Miller enrolled: 202 2011 1 |
|
© 2018 Sormula, LLC |