Hibernate总结.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate总结

Hibernate总结 Hibernate总结 1 一、Hibernate框架及ORM 1 1.1 Hibernate的定义: 1 1.2 ORM的定义: 2 1.3 Hibernate框架的优点: 2 1.4 Hibernate 框架的缺点: 2 1.5 Hibernate 中Java 对象的三种状态 2 2.3 三种状态转换的详解 3 二、HQL实用技术 4 2.1编写HQL语句 4 2.2 执行HQL语句 4 2.3在HQL查询语句中绑定参数 5 三、Hibernate关联映射 6 3.1 多对一映射关联(many-to-one) 6 3.2 一对多映射关联(one-to-many) 6 3.3 一对一映射关联 6 3.4多对多关联(many-to-many) 7 四、Hibernate缓存机制 8 4.1 缓存的概念: 8 4.2 Hibernate缓存分类: 8 4.3 一级缓存详解 9 4.4 二级缓存详解 9 一、Hibernate框架及ORM 1.1 Hibernate的定义: Hibernate是数据持久化工具,是一个开放源代码的对象关系映射框架。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供面向对象的数据访问API。 1.2 ORM的定义: ORM全称“Object/Relation Mapping”即对象关系映射,是一种数据持久化技术。它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过JavaBean 对象去操作数据库表中的数据。 (此图暂时省略) 1.3 Hibernate框架的优点: Hibernate 功能强大,是Java应用与关系数据库之间的桥梁,较之JDBC操作数据库,代码量大大减少,提高了持久化代码的开发速度,降低了维护成本。 Hibernate 支持许多面向对象的特性,如组合、继承。使得开发人员不必在面向业务领域的对象模型和面向数据库的关系型数据模型之间来回切换,方便开发人员进行领域驱动的面向对象的设计与开发。 可移植性好。系统不会绑定在某个特定的关系型数据库上,对于系统更换数据库,通常需要修改Hibernate 配置文件即可正常运行。 Hibernate 框架开源免费,可以在需要时研究源代码,改写源代码,进行功能的定制,具有可扩展性。 Hibernate 适用于中大型项目。 1.4 Hibernate 框架的缺点: 不适合以数据为中心,大量适用存储过程的应用。 大规模的批量插入、修改、删除不适合用Hibernate。 Hibernate 不适用于小型项目,也不适用于关系模型设计不合理、不规范的系统。 1.5 Hibernate 中Java 对象的三种状态 Hibernate 框架通过Session 来管理Java对象的状态,在持久化生命周期中,Java对象存在这以下三种状态: 瞬时状态(Transient): 通过new 创建对象后,对象并没有立刻持久化,它并未与数据库中的数据有任何的关联,此时Java的状态为瞬时状态。Session 对于瞬时状态的Java对象是一无所知的,当对象不再被其它对象引用时,它的所有数据也就丢失了,对象会被Java虚拟机按照垃圾回收机制处理。 2. 持久状态(Persistent): 当对象与Session关联,被Session管理时,它就处于持久状态。处于持久状态的对象拥有数据库标识。与Session发生关联的两种方式为:第一,通过Session的查询接口,比如get方法或load方法。第二,针对于瞬时状态的对象,通过Session的save方法或update方法,即Java对象和Session发生了关联。 3. 游离状态(Detached): 处于持久状态的对象,脱离与其关联的Session管理后,对象就处于游离状态。处于游离状态的对象,Hibernate无法保证对象所包含的数据与数据库中的数据一致。因为Hibernate已经无法感知对该对象的任何操作。Session提供了两个方法(update、merge),将处于游离状态的对象与一个新的Session对象发生关联。此时,对象的状态就从游离状态转换为持久状态。 2.2 三种状态之间的转换(如下图) 表示开始 表示结束 2.3 三种状态转换的详解 1. 瞬时状态转为持久状态 使用Session对象的save()或saveOrUpdate() 方法保存对象后,该对象的状态由瞬时状态转换为持久状态。 使用Session对象的get()或Load()方法获取对象,该对象的状态为持久状态。 2. 持久状态转为瞬时状态 执行Session对象的delete()方法后,对象由原来的持久状态变为

文档评论(0)

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

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

1亿VIP精品文档

相关文档