‘}’;
}
课程表 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
public 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;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后
我这里整理了一份完整的学习思维以及Android开发知识大全PDF,有需要的同学可以自行领取。
当然实践出真知,即使有了学习线路也要注重实践,学习过的内容只有结合实操才算是真正的掌握。
99054)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-CSo7kkST-1710839699054)]
最后
我这里整理了一份完整的学习思维以及Android开发知识大全PDF,有需要的同学可以自行领取。
[外链图片转存中…(img-WGcHX2zh-1710839699055)]
当然实践出真知,即使有了学习线路也要注重实践,学习过的内容只有结合实操才算是真正的掌握。