public class Teachers {
@Id(autoincrement = true)
@Property(nameInDb = “teacherId”)
private long teacherId;
@Property(nameInDb = “teacherName”)
private String teacherName;
@Property(nameInDb = “sex”)
private String sex;
@Override
public String toString() {
return “Teachers{” +
“teacherId=” + teacherId +
“, teacherName=’” + teacherName + ‘’’ +
“, sex=’” + sex + ‘’’ +
‘}’;
}
课程表 Courses
@Entity(nameInDb = “Courses”)
public class Courses {
@Id(autoincrement = true)
@Property(nameInDb = “courseId”)
private long courseId;
@Property(nameInDb = “courseName”)
private String courseName;
@Property(nameInDb = “teacherId”)//这里的teacherId为Teachers表中的主键id
private long teacherId;
@ToOne(joinProperty =“teacherId” ) //一对一 ,一课一老师
private Teachers teacher;
@Override
p
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
ublic String toString() {
return “Courses{” +
“courseId=” + courseId +
“, courseName=’” + courseName + ‘’’ +
“, teacherId=” + teacherId +
“, teacher=” + teacher +
‘}’;
}
测试数据
Teachers teachers=new Teachers();
teachers.setTeacherId(31);
teachers.setTeacherName(“31 老师”);
teachers.setSex(“男”);
Teachers teachers1=new Teachers();
teachers1.setTeacherId(32);
teachers1.setTeacherName(“32 老师”);
teachers1.setSex(“男”);
Teachers teachers2=new Teachers();
teachers2.setTeacherId(33);
teachers2.setTeacherName(“33 老师”);
teachers2.setSex(“女”);
Courses courses=new Courses();
courses.setCourseId(1);
courses.setTeacherId(31);
courses.setCourseName(“语文”);
Courses courses1=new Courses();
courses1.setCourseId(2);
courses1.setTeacherId(32);
courses1.setCourseName(“英语”);
Courses courses2=new Courses();
courses2.setCourseId(3);
//courses2.setTeacherId(33);
courses2.setTeacher(teachers2);//设置Teachers 对象关联
courses2.setCourseName(“数学”);
//插入数据
GreenDaoUtils.getDaoSession().getTeachersDao().insertOrReplaceInTx(teachers,teachers1,teachers2);
GreenDaoUtils.getDaoSession().getCoursesDao().insertOrReplaceInTx(courses,courses1,courses2);
List teachers = GreenDaoUtils.getDaoSession().getTeachersDao().queryBuilder().build().list();
List courses = GreenDaoUtils.getDaoSession().getCoursesDao().queryBuilder().build().list();
Log.d(“LHW”,“teachers=”+teachers);
Log.d(“LHW”,“courses=”+courses);
注意:
针对上面一对多的情况 也可以不定义teacherId关联外键,可以插入在数据的时候setTeachers
@ToMany 一对多的使用
新建表 Students
@Entity(nameInDb = “Students”)
public class Students {
@Id(autoincrement = true)
private long id;
@Property(nameInDb = “studentId”)
private long studentId;
@Property(nameInDb = “studentName”)
private String studentName;
@Property(nameInDb = “classes”)
private String classes;
@Property(nameInDb = “courseId”)//Courses表的主键id
private long courseId;
@ToMany(referencedJoinProperty =“courseId”)//一对多 一个学生多堂课
private List courses;
@Override
public String toString() {
return “Students{” +
“id=” + id +
“, studentId=” + studentId +
“, studentName=’” + studentName + ‘’’ +
“, classes=’” + classes + ‘’’ +
“, courseId=” + courseId +
“, courses=” + getCourses() +
‘}’;
}
测试数据
Students students=new Students();
students.setId(1);
students.setStudentId(21);
students.setCourseId(1);
students.setStudentName(“21 学生”);
Students students1=new Students();
students1.setId(2);
students1.setStudentId(22);
students1.setCourseId(2);
students1.setStudentName(“22 学生”);
Students students2=new Students();
students2.setId(3);
students2.setStudentId(23);
students2.setCourseId(3);
students2.setStudentName(“23学生”);
GreenDaoUtils.getDaoSession().getStudentsDao().insertOrReplaceInTx(students,students1,students2);
List students = GreenDaoUtils.getDaoSession().getStudentsDao().queryBuilder().build().list();
Log.d(“LHW”,“students=”+students);
@ToMany @JoinEntity 多对多的使用
多对多,@JoinEntity注解:entity 中间表;sourceProperty 实体属性主键id;targetProperty 外链实体属性主键id
GradeJionTeacher 新建中间表
@Entity(nameInDb = “GradeJionTeacher”)
public class GradeJionTeacher {
@Id(autoincrement = true)
private long id;
@Property(nameInDb =“stuId”)
private long stuId;
@Property(nameInDb =“teaId”)
private long teaId;
Grade 年级表
@Entity(nameInDb = “Grade”)
public class Grade {
@Id(autoincrement = true)
private long id;
@Property(nameInDb = “gId”)
private long gId;
@Property(nameInDb = “gradeName”)
private String gradeName;
@Property(nameInDb = “gradeState”)
private String gradeState=“day day up”;
@ToMany //多对多 多个年纪对 多个老师
@JoinEntity(entity = GradeJionTeacher.class,sourceProperty = “stuId”,targetProperty = “teaId”)
private List teachersList;
@Override
public String toString() {
return “Grade{” +
“id=” + id +
“, gId=” + gId +
“, gradeName=’” + gradeName + ‘’’ +
“, gradeState=’” + gradeState + ‘’’ +
“, teachersList=” +getTeachersList()+//teachersList
‘}’;
}
Teachers 教师表
@Entity(nameInDb = “Teachers”)
public class Teachers {
@Id(autoincrement = true)
@Property(nameInDb = “teacherId”)
private long teacherId;
@Property(nameInDb = “teacherName”)
private String teacherName;
@Property(nameInDb = “sex”)
private String sex;
@ToMany //多对多 多个老师 多个年纪
@JoinEntity(entity = GradeJionTeacher.class,sourceProperty = “teaId”,targetProperty = “stuId”)
private List grades;
@Override
public String toString() {
return “Teachers{” +
“teacherId=” + teacherId +
“, teacherName=’” + teacherName + ‘’’ +
“, sex=’” + sex + ‘’’ +
“, grades=” + grades +
‘}’;
}
测试数据
Grade grade=new Grade();
grade.setId(41);
grade.setGId(41);
grade.setGradeName(“31 年纪”);
grade.setGradeState(“happy every day”);
Grade grade1=new Grade();
grade1.setId(42);
grade1.setGId(42);
grade1.setGradeName(“32 年纪”);