学生映射文件
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- 导入包 --> <hibernate-mapping package="cn.itcast.g_hbm_manyToMany"> <!-- 类名 --> <class name="Student" table="t_student"> <id name="id" type="integer" column="id"> <generator class="native" /> </id> <property name="name" type="string" column="name" /> <!-- teachers属性,Set集合。 表达的是本类与Teacher的多对多的关联关系 table属性:中间表(集合表) key子元素:集合外键 (引用当前表主键的那个外键) --> <set name="teachers" table="t_teacher_student"> <key column="studentId"></key> <many-to-many class="Teacher" column="teacherId"></many-to-many> </set> </class> </hibernate-mapping> 老师映射文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- 导入包 --> <hibernate-mapping package="cn.itcast.g_hbm_manyToMany"> <!-- 类名 --> <class name="Teacher" table="t_teacher"> <id name="id" type="integer" column="id"> <generator class="native" /> </id> <property name="name" type="string" column="name" /> <!-- students属性,Set集合。 表达的是本类与Student的多对多的关联关系 table属性:中间表(集合表) key子元素:集合外键 (引用当前表主键的那个外键) --> <set name="students" table="t_teacher_student"> <key column="teacherId"></key> <many-to-many class="Student" column="studentId"></many-to-many> </set> </class> </hibernate-mapping> 学生实体类 package cn.itcast.g_hbm_manyToMany; import java.util.HashSet; import java.util.Set; /** * 学生 * * @author 风清杨 * @version V1.0 */ public class Student { private Long id; private String name; private Set<Teacher> teachers = new HashSet<Teacher>();// 关联得老师位 public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set<Teacher> getTeachers() { return teachers; } public void setTeachers(Set<Teacher> teachers) { this.teachers = teachers; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + "]"; } } 老师实体类 package cn.itcast.g_hbm_manyToMany; import java.util.HashSet; import java.util.Set; /** * 老师 * * @author 风清杨 * @version V1.0 */ public class Teacher { private Long id; private String name; private Set<Student> students = new HashSet<Student>();// 关联的学生们 public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set<Student> getStudents() { return students; } public void setStudents(Set<Student> students) { this.students = students; } @Override public String toString() { return "Teacher [id=" + id + ", name=" + name + "]"; } } 组合映射文件 private static SessionFactory sessionFactory = new Configuration()// .configure()// .addClass(Student.class)// 添加Hibernate实体类(加载对应的映射文件) .addClass(Teacher.class)// 添加Hibernate实体类(加载对应的映射文件) .buildSessionFactory();