第9章Hibernate的映射机制.ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.3.1 继承关系映射 执行程序后,会把xh、xm、bir记录插入xs表中,把本条记录的id值及researchResult记录插入到yjs表中。 ?//插入一条本科生记录 public void saveBks(){ Bks bks=new Bks(); bks.setXh(081102); bks.setXm(李方方); bks.setBir(new Date()); bks.setKy(true); Transaction ts=session.beginTransaction(); session.save(bks); mit(); } 9.3.1 继承关系映射 执行程序后,会把xh、xm、bir记录插入xs表中,把本条记录的id值及ky记录插入到bks表中。 ?//查询记录 public void query(){ List list=session.createQuery(from Yjs).list(); for(int i=0;ilist.size();i++){ Yjs yjs=(Yjs) list.get(i); System.out.print(yjs.getXm()+----); System.out.println(yjs.getResearchResult()); } List list2=session.createQuery(from Bks).list(); for(int i=0;ilist2.size();i++){ Bks bks=(Bks) list2.get(i); System.out.print(bks.getXm()+----); System.out.println(bks.getKys()); } } 9.3.1 继承关系映射 测试结果如图9.2所示。(建立项目,添加Hibernate开发所需类库,配置hibernate.cfg.xml文件和前面的例子相同,这里就不多做列举。配置一个映射文件后在hibernate.cfg.xml中进行注册即可,在测试用例中获得Session的过程也与前面例子中相同,只要在主函数中调用相应方法即可完成测试。) 图9.2 测试结果 9.3.1 继承关系映射 3.共享一个数据库表 使用这种方法,在一张表中加入所有的字段,包括子类中的特有属性,并且加入类型字段来表示属于何种类型,例如“yjs”类型,表示该条记录是研究生,“bks”类型表示该条记录是本科生。 ? 采用这种方法,数据库中只要建立一张表即可,如表9.8所示。 字 段 名 数据类型 主 键 自 增 允许为空 描 述 id int 是 增1 id标识 xh varchar(50) 学号 xm varchar(50) 是 姓名 bir datetime 是 出生时间 xsType varchar(50) 是 类型 researchResult varchar(50) 是 研究成果 ky bit 是 是否考研 表9.8 xs表 9.3.1 继承关系映射 ? POJO类的分配为,Xs.java中配置除子类各自独特属性外的所有属性,子类只配置各自的独特属性。 Xs.java代码编写如下: ?package org.vo.one; import java.util.Date; public class Xs { private int id; private String xh; private String xm; private Date bir; private String xsType; //省略上面属性的get和set方法 } 9.3.1 继承关系映射 Yjs.java代码编写如下: ?package org.vo.one; public class Yjs extends Xs{ private String researchResult; //省略get和set方法 } ?Bks.java代码编写如下: ?package org.vo.one; public class Bks extends Xs{ private boolean ky; //省略get和set方法 } 9.3.1 继承关系映射 ? 该种情况只需要配置一个映射文件Xs.hbm.xml即可,其子类信息及关系也会在映射文件中体现。 ? 数据的存取也很简单,只需操作不同的类来得到想要得到的信息。 ?//插入一条记录,并且该条记录为研究生 public void saveYjs(){ Transaction t=session.beginTransaction(); Yjs yjs=new Yj

文档评论(0)

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

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

1亿VIP精品文档

相关文档