一、关系表达: 1、一对多、多对一表的关系: 学生表: 班级表: 在学生表中,学生的学号是主键。在班级表中,班级号是主键,因此,学生表的外键是classno。因此,班级对应学生是一对多,学生对应班级是多对一。因为,一个班级可以有多个学生,但是一个学生只能在一个班级。 2、对象的一对多、多对一关系: (1)在Class类中,定义Set集合,表达一对多的关系: + View Code + View Code       (2)定义学生和班级的关系: + View Code    3、配置映射文件: Class.hbm.xml: (1)实现一对多的关系映射,即:一个班级对应多个学生: 复制代码 复制代码 复制代码 复制代码 指定映射的存储学生的集合的名字。 复制代码 复制代码 映射的class表的外键。 复制代码 复制代码 指定学生的类型。 (2)实现多对一的关系映射,即:多个学生对应一个班级。 复制代码 复制代码 name属性:映射的班级。 column属性:映射的班级对象对应的外键。 class属性:指定班级的类型。 4、主配置文件: + View Code  二、具体运用: 1、增加: (1)创建一个新班级并为新班级添加两名学生: 复制代码 public class Test { public static void testSel() { Session session = HibernateUtils.openSession();//获得session Transaction transaction = session.beginTransaction();//开启事务 Clas clas=new Clas(); clas.setClassname("计科171"); clas.setClassno(4600); clas.setDepartment("一号楼"); clas.setMonitor("zhai"); Student student=new Student(); student.setSname("翟"); student.setStudentno(2017151411); student.setPoint(123f); student.setSex("男"); student.setBirthday("2019-11-11"); student.setPhone("18739496522"); student.setClassno("221221"); student.setEmail("34288334@qq.com"); Student student1=new Student(); student1.setSname("翟hb"); student1.setStudentno(2017151419); student1.setPoint(666f); student1.setSex("女"); student1.setBirthday("2019-11-11"); student1.setPhone("18739496522"); student1.setClassno("221221"); student1.setEmail("34288334@qq.com"); clas.getStudents().add(student);//一对多,一个班级下有多个学生 clas.getStudents().add(student1);//获取Set集合对象并向其中添加元素 student.setaClas(clas);//多对一,学生属于哪一个班级 student1.setaClas(clas); session.save(clas); session.save(student); session.save(student1); transaction.commit();//提交事务 session.close();//关闭资源 } 复制代码 (2)为一个已经存在的班级添加学生: + View Code    2、删除: 删除80501班的一名学生信息: 1 2 3 4 5 6 7 8 9 10 public static void testDel() { Session session = HibernateUtils.openSession();//获得session Transaction transaction = session.beginTransaction();//开启事务 Clas clas=session.get(Clas.class,80501);//获得要删除的学生属于那一个班级 Student student=session.get(Student.class,937221532);//获得要删除的学生 clas.getStudents().remove(student); student.setaClas(null); transaction.commit();//提交事务 session.close();//关闭资源 } https://www.cnblogs.com/zhai1997/p/11844109.html