1.使用Hibernate进行父子表的CRUD操作
2.父子表自由设计,只要能体现父子表关系就可以
目的:真正学会使用Hibernate来进行增加、查询、更新、删除操作,不再是Demo
内容:在数据库中建立父子表,分别能对父子表进行增加、查询、更新、删除操作,一定要实现分页功能。
友情提示:
1、对子表的操作,一定是带有父表Id的,否则不可能知道该条记录是从属于那个父表数据。
2、表的主键生成方式不同,Hibernate的配置不同,需要注意一下。
以上就是实验的要求:
Java:1.8
tomcat版本:9.0.52
MySQL版本:8.0.27
gitHub:https://github.com/mochenlyq/test10.git
本实验绝大部分代码 致敬 了该博客,根据实验要求做出一定程度的修改等等:使用hibernate和struts2实现分页功能 - xiaoluo501395377 - 博客园
声明:本实验是在我对 实验要求的理解 和 想偷懒的想法 的基础上进行创建,如果你觉得你是对的,那就以你为准。
先提前向数据库填入信息,该关联为双向N-N,下面的几块代码为项目外的代码,GitHub里面并没有:
添加一百个学生信息:
for(int i = 1; i <= 100; i++){
Student student = new Student();
student.setName("lyq" + i);
student.setSex("男");
session.save(student);
if(i % 20 == 0){
//flush()方法用于打断session操作,目的让它执行完一部分内容,clear()用于消除缓存
session.flush();
session.clear();
}
}
添加五个课程,并确认连接表的关系:
Student student1 = (Student) session.load(Student.class, 1);
Student student2 = (Student) session.load(Student.class, 2);
Course course1 = new Course("C语言");
course1.getStudents().add(student1);
session.persist(course1);
Course course2 = new Course("数据库");
course2.getStudents().add(student1);
session.persist(course2);
Course course3 = new Course("Java");
course3.getStudents().add(student1);
session.persist(course3);
Course course4 = new Course("Python");
course4.getStudents().add(student1);
session.persist(course4);
Course course5 = new Course("Android");
course5.getStudents().add(student1);
session.persist(course5);
Course course6 = new Course("C++");
course6.getStudents().add(student2);
session.persist(course6);
运行Tomcat后界面如下:
点击 首页 就会自动加载信息。
按要求加了分页功能,输入3或者点两次下一页后的结果如下:
查询 lyq1,查询结果页面如下:
查询 lyq2:
删除 lyq2 的C++课程:
为 lyq2 添加 java课程 :
点击提交后:
修改lyq1信息名字为lyq:
点击提交后: