1. 1、本文档共100页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CH9 Hibernate映射与检索 邓利平 QQEmail 主要内容 映射文件的配置 集合映射 关联关系映射 继承关系映射 组合映射 Hibernate检索策略与检索方式 9.1 映射文件的配置 映射文件名字格式:实体类名.hbm.xml;与实体类放在同一包下 几个最基本的映射文件标签 9.2 集合映射 9.2.1 Java集合类 Java中有4个基本的集合类接口 9.2.1 Java集合类 映射集合(值类型) 在本课程的入门实例中,Java实体类中的属性都是基本类型;而实际应用中集合类型属性也是大量存在的。 问题:如何映射集合类型? 解决办法:一个集合对应一张表 特点:一个类对应多张表 9.2.2 无序Set映射 实体类定义Album.java 9.2.2 无序Set映射 9.2.2 无序Set映射 映射文件Album.hbm.xml 9.2.2 无序Set映射 Set set=new HashSet(); set.add(image1.jpg); set.add(image2.jpg); set.add(image32.jpg); set.add(image1.jpg); Album a=new Album(6,M,set); try{ Session session=connection.HibernateSessionFactory.getSession(); Transaction t=session.beginTransaction(); session.save(a); mit(); System.out.println(保存成功); }catch(Exception e){e.printStackTrace();} 9.2.3有序Set映射 排序集合(映射TreeSet对象) 自然排序 客户化排序 9.2.3有序Set映射 有序排序 不论由HashSet还是TreeSet来实现Set接口,order-by属性都可以使用 9.2.4 映射List 如果需要保存重复对象,此时可以使用List映射。在List集合中允许存储重复元素,并且按照索引位置进行排序。为了能够保存List集合的索引值,在image表中添加一列(position)用来保存索引值。 9.2.4 映射List 修改Album实体类 9.2.4 映射List 使用list元素来映射List类型集合 9.2.5 映射Bag 映射List,集合中的元素有固定的所以呢排序并且允许元素有重复元素;映射Bag(包),集合中的元素无序而且允许重复元素。Java集合中并没有Bag,但是java.util.Collection接口有包语义,因此只需要一种相匹配的实现。实现方式有两种: 由java.util.Collection编写集合属性,并用ArrayList初始化它。用bag或者idbag元素映射它。 由java.util.List编写集合属性。初始化及映射同上一种一样。 9.2.5 映射Bag 映射Bag的数据库表结构及关系 集合属性仍然使用List类型 private List images = new ArrayList(); 9.2.5 映射Bag 9.2.6 映射Map Map集合可以使用“键值”的形式保存对象。在数据库 image表中增加一列keyname表示“键”对象。 集合属性仍然使用Map类型 private Map images = new HashMap(); 9.2.6 映射Map 使用map元素来映射Map类型集合 9.2.7 映射数组Array 9.3 实体对象关联关系映射 在Hibernate中关联关系表现在所映射的表与表之间的关系,采用关联操作,能够使有关系的表之间保持数据同步,同时,关联操作能够使程序员在编写程序的过程中,减少编写多表操作的代码量,并且优化了程序,提高程序运行效率。 Hibernate中实体关联关系的种类有: 单向一对一、单向多对一、单向一对多,单向多对多、双向一对一、双向多对一(双向一对多)、双向多对多 9.3 实体对象关联关系映射 数据库表结构 为什么数据库表之间会出现关联? 表设计的原则 减少数据冗余 确保数据的准确性 较好的使用性 对表进行拆分,减少冗余(使用四个范式判断是否还需要拆分 ) 引入表的关联,确保数据的准确性 、完整性 为什么数据库表之间会出现关联? 关联关系映射 在学习面向对象时,我们学过对象之间存在关联的关系.学习数据库知识时,我们学过,表与表间也通过外键关联起来.怎样映射面向对象领域的关联关系和数据库关系模型中的外键关联,就是本节关注的问题 使用Hiberna

文档评论(0)

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

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

1亿VIP精品文档

相关文档