第3章 操作持久化对象.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 操作持久化对象

Hibernate ORM 最佳实践 第3章 操作持久化对象 回顾 了解Hibernate的对象标识符 学习Hibernate的主键生成机制 掌握Hibernate的映射类型 掌握对象继承关系映射 掌握关联关系映射 目标 了解Hibernate持久对象的生命周期管理 理解Session的缓存机制 掌握Hibernate中操作对象的几种方法以及最佳实现 掌握Hibernate的查询方式及实现 持久对象的生命周期 Session的缓存机制 示例 对象状态变化(1) 对象状态变化(2) 对象状态变化(3) Hibernate查询方式 对象标识符 (get和load) Hibernate查询语言(HQL) QBC和QBE检索方式(Query By Criteria、Query By Example) Native SQL 查询 面向对象查询HQL HQL的全称Hibernate Query Language,它是查询语言,只是用来查询数据,无法实现对数据库修改的功能。 HQL提供功能 在查询语句中设定各种查询条件 支持投影查询 提供排列查询结果的功能 支持分页查询 支持连接查询 支持分组查询 支持聚集函数 查询实现 利用Session的createQuery()方法 聚集函数 绑定参数查询 与PreparedStatement类似,Query接口支持命名参数和JDBC风格?参数绑定方法。Hibernate除了提供查询参数基本类型方法以外,还提供查询对象参数的方法 特殊参数绑定方法(1) setEntity( )和setParameter( ) 特殊参数绑定方法(2) setParameters()和setParameterList() Hibernate分页支持 在web应用中,分页是很重要的,Hibernate内部提供两种分页支持,一种基于Query接口的查询分页,另一种是基于Criteria的条件查询分页 setFirstResult(int ):用于设置从第几个对象开始查询 setMaxResults(int):用于设置每次查询返回的最大数目 scroll():支持游标滚动 映射文件中定义HQL查询语句 在映射文件中使用标签query来命名HQL查询,在代码中使用getNamedQuery()方法调用命名查询 SQL检索方式 Hibernate提供SQLQuery接口支持SQL执行,Session.createSQLQuery()方法获得SQLQuery的实例。 addEntity()函数 addEntity()函数意味以持久对象形式返回结果,假如不使用该函数:以列值形式返回结果。 映射文件中定义SQL方式 在映射文件中使用标签sql-query来命名SQL语句,标签return来指定返回持久类对象。在代码中使用getNamedQuery()方法调用命名查询 映射文件中定义SQL方式 总结 了解Hibernate持久对象的生命周期管理 理解Session的缓存机制 掌握Hibernate中操作对象的几种方法以及最佳实现 掌握Hibernate的查询方式及实现 Hibernate ORM Hibernate ORM 瞬时对象 持久对象 脱管对象 new Object save() save()OrUpdate() get( ) load( ) finad( ) Iteerate( ) evict( ) close( ) clear( ) update( ) saveOrUpdate( ) lock( ) delete( ) JVM GC JVM GC Session 瞬时对象:刚被new出来的新创建的对象,它没有作为Session中任何方法的参数而与Session发生关联 持久对象:POJO对象已经关联在某一个Session中,即该对象具有持久化标识. 脱管对象:该POJO对象已提交进数据库,它所关联的Session执行clear()、close()、evict()等清空缓存的 函数,对象就没了项关联的缓存,此时的对象状态不再被Session管理。 POJO对象c1由瞬时状态到持久状态 对象c2引用缓存中对象c1 c1提交数据库,执行insert语句 对象c1状态变为脱管状态 对象c3从数据库获取到缓存 对象c1状态变为持久状态 c1提交数据库,执行update语句 对象c3引用缓存中c1对象 对象c1状态变为瞬时状态 事务提交,执行语句delete 运行结果 注意: ①对Session执行get、load操作,如果 Session的缓存中存在,直接从缓存中 取出,如果没有,才从数据库中检索; ②如果数据库和缓存中都没有该对象,get返回null,

文档评论(0)

dart003 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档