第9章 Hibernate映射机制解析.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
运行程序,插入数据后,Person表和Room表的内容如图9.12和图9.13所示。 4.多对多关联 ? 多对多单向关联。 学生和课程就是多对多的关系,一个学生可以选择多门课程,而一门课程又可以被多个学生选择。多对多关系在关系数据库中不能直接实现,还必须依赖一张连接表,如表9.13、表9.14和表9.15所示。 【实例9.7】单向多对多示例。 (1)在项目Hibernate_mapping的org.model包下生成以上数据库表对应的POJO类对象和映射文件,然后进行修改。 student表对应的POJO类修改如下: package org.model; import java.util.*; … public class Student implements java.io.Serializable { private Integer id; // ID号 private String snumber; // 学号 private String sname; // 姓名 private Integer sage; // 年龄 private Set courses = new HashSet();// 定义集合,存放多个 Course 对象 … // 增加 Course 集合的get和set方法 public Set getCourses(){ return courses; } public void setCourses(Set courses){ this.courses = courses; } } student表与Student类的ORM映射文件Student.hbm.xml修改如下: … hibernate-mapping class name=org.model.Student table=student schema=dbo catalog=XSCJ id name=id type=java.lang.Integer column name=ID / generator class=identity / /id … set name=courses // set标签表示此属性为Set集合类型,由name指定属性名 table=stu_cour // 连接表的名称 lazy=true // 表示此关联为延迟加载,所谓延迟加载就是到了用的时候 // 进行加载,避免大量暂时无用的关系对象 cascade=all // 级联程度 key column=SID/key // 指定参照student表的外键名称 many-to-many class=org.model.Course // 被关联的类的名称 column=CID/ // 指定参照course表的外键名称 /set /class /hibernate-mapping (2)编写测试代码。 在src下的包test的Test类中加入如下代码: … Course cour1=new Course(); Course cour2=new Course(); Course cour3=new Course(); cour1.setCnumber(101); cour1.setCname(计算机基础); cour2.setCnumber(102); cour2.setCname(数据库原理); cour3.setCnumber(103); cour3.setCname(计算机原理); Set courses=new HashSet(); courses.add(cour1); courses.add(cour2); courses.add(cour3); Student stu=new Student(); stu.setSnumber(081101); stu.setSname(李方方); stu.setSage(21); stu.setCourses(courses); session.save(stu); //设置完成后就可以通过Session对象调用session.save(stu)完成持久化 … (3)运行程序,测试结果。 因为该程序为Java Application,所以可以直接运行。在完全没有操作数据库的情况下,程序就完成了对数据的插入。插入数据后,student表、course表及连接表stu_cour的内容如图9.14、图9.15和

文档评论(0)

2299972 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档