- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目 录 1 Hibernate的关联映射 2 Hibernate的批量处理 3 HQL查询及条件查询 4 事务控制 5 二级缓存和查询缓存 6 本讲小结 事务的概念 事务的概念 事务是最小的逻辑执行单元 整个事务的执行不能分开执行 要么同时执行,要么同时放弃执行。 事务的特性(ACID) 原子性 一致性 隔离性 持续性 Hibernate默认事务:JDBCTransaction Session与事务 从编程的角度看,Hibernate的事务由Session对象开启。 从底层实现来看,Hibernate事务由TransactionFactory的实例来产生。 Hibernate建议采用每个请求对应一次Session的模式。 上下文相关的Session getCurrentSession创建的session会绑定到当前线程,而openSession不会。 getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭。 如果要使用getCurrentSession,需要在hibernate.cfg.xml配置。 上下文相关的Session getCurrentSession设置本地事务时,要在hibernate.cfg.xml文件里进行如下设置: property name=“hibernate.current_session_context_class”thread/property property name=“hibernate.current_session_context_class”jta/property 对于Hibernate的Session和事务管理,Spring框架提供了非常完美的解决方案。 目 录 1 Hibernate的关联映射 2 Hibernate的批量处理 3 HQL查询及条件查询 4 事务控制 5 二级缓存和查询缓存 6 本讲小结 缓存管理 缓存的概念 物理载体一般是内存 一级缓存 Session(会溢出,需要处理) 由Hibernate管理 二级缓存 sessionFactory管理 需要手动配置 Hibernate3和Hibernate4的配置方式不同 Hibernate3二级缓存配置步骤 Hibernate3二级缓存 文件结构 Hibernate4二级缓存配置步骤 Hibernate4二级缓存 文件结构 Hibernate二级缓存 Annotation配置 Hibernate二级缓存 hbm.xml映射文件配置方式 Hibernate二级缓存 hibernate.cfg.xml文件配置范例 ehcache.xml文件配置范例 Hibernate二级缓存 Hibernate二级缓存 运行结果 查询缓存 一级、二级缓存都是对整个实体进行缓存,它不会缓存普通属性;如果想对普通属性进行缓存,则可以考虑使用查询缓存。 查询缓存不仅要求所使用的HQL语句、SQL语句相同,甚至要求所传入的参数也相同,hibernate才能直接从查询缓存中取得数据。 查询缓存默认是关闭的,开启方式 property name=“hibernate.cache.use_query_cache”true/property 目 录 1 Hibernate的关联映射 2 Hibernate的批量处理 3 HQL查询及条件查询 4 事务控制 5 二级缓存和查询缓存 6 本讲小结 本节小结 本讲学习了Hibernate的高级知识 多利用网络资源 多动手实践 * Hibernate: select user0_.uid as col_0_0_, user0_.age as col_1_0_, user0_.ugender as col_2_0_, user0_.uid as col_3_0_, user0_.uid as uid1_0_, user0_.age as age2_0_, user0_.ubirthday as ubirthda3_0_, user0_.ugender as ugender4_0_, user0_.uname as uname5_0_, user0_.psw as psw6_0_ from t_user user0_ where user0_.age=? and user0_.ugender=? and ( user0_.uname like
文档评论(0)