下载此文档

02多对多关联关系.doc


文档分类:管理/人力资源 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
数据库中的多对多关联关系反映在这种情况下:
比如说,一个学生上多门课,一门课有多个学生学****这就是多对多关联。
那么从数据库的角度,我们如何来设计数据库表结构以实现多对多的关联关系呢?
如果设计成下面的样子;
student
id
name
course_id
1
罗锅
2
course
id
name
student_id
2
Java
1
上面的表结构设计的不合理
hibernate会使用一个中间关联表来优化表设计结构:
student_course
student_id
course_id
1
2
将学生id和课程id联合作为主键。
首先来设计POJO类
Student类:id name Set<Course>类型的属性courses
Course类:id name Set<Student> 类型的属性students
上面的类均生成Getter和Setter方法
接下来,我们设计映射文件:

<class name="Student">
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<set name="courses" table="student_course">
<key column="student_id"/>
<many-to-many class="Course" column="course_id"></many-to-many>
</set>

</class>
要从学生查他学的所有课程,需要将学生的id与student_course表中的key属性指定的student_id列关联
,找到所有记录后,要将这些记录的course_id作为外键到课程表中查询相关联的课程记录。这里实际上使用了一对多的关联查询

<class name="Course">
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<set name="students" table="student_course">
<key column="course_id"/>
<many-to-many class="Student" column="student_id"></many-to-many>
</set>

</class>
接下来我们编写一个测试代码,插入两条学生两条课程记录
static void add(){
Session s = null;
Transaction tx = null;
try {

Student s1 = new Student();
("student1");

Student s2 = new Student();
("student2");

Course c1 = new Course();

02多对多关联关系 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人bjy0415
  • 文件大小0 KB
  • 时间2015-05-30