J2EE框架之hibernate3.x开发.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文档。上传文档
查看更多
J2EE框架之hibernate3.x开发

Hibernate核心接口 本章内容 Session缓存 持久化对象状态 Configuration SessionFactory Session Transaction Query Session缓存 Hibernate对其持久化对象实现了缓存管理,来提高应用性能,Hibernate支持两级缓存管理,Session缓存为一级缓存,是系统内置的,不能被卸载。 Hibernate的二级缓存是可选的,默认是不支持的,应用必须明确配置二级缓存才能使用。 Session缓存的作用: 降低访问数据库的频率 保证缓存中的对象与数据库中的相关记录保持同步 持久化对象的状态 对于需要被持久化的对象,处于以下三种状态之一: 临时状态(Transient) 刚刚用new创建,还没有被持久化,还不处于Session缓存之中 持久化状态(Persistent) 已经被持久化,加入到Session的缓存之中 游离状态(Detached) 已经被持久化,但不再处于Session的缓存之中 对象的状态转换 临时对象的特征 不处于Session的缓存中 在数据库中没有对应的记录 以下情况会使对象进入临时状态: 当通过new语句刚创建了一个对象 Session的delete()方法会使一个对象从持久化状态或游离状态进入临时状态 持久化对象的特征 位于一个Session实例的缓存中 持久化对象和数据库中相关的记录对应 Session在清理缓存时,会根据持久化对象的属性的变化来同步更新数据库 Session的save()方法把临时对象变为持久化对象 Session的load()或get()方法返回的是持久化对象,find()方法返回的List元素 Session的update(), saveOrUpdate(),lock()使对象从游离状态变成持久化状态。 游离对象的特征 不再处于Session的缓存中 游离对象是从持久化对象转变过来的 调用Session的close()方法时,Sessin的缓存被清空,缓存中的持久化对象会变成游离对象 Session的evict()能从缓存中删除一个对象,使之从持久化状态变成游离状态 Hibernate核心接口 Hibernate核心接口 Configuration SessionFactory Session Transaction Query/Criteria Configuration Configuration 类负责管理Hibernate 的配置信息,这些信息由配置文件提供,包括如下内容: Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等。 Hibernate映射文件(*.hbm.xml)。 调用代码 属性文件(perties) Configuration cfg = new Configuration(); cfg.addClass(XXX.class);//该方法加载XXX.hbm.xml cfg.addResource(); Xml文件(hibernate.cfg.xml) Configuration cfg = new Configuration().configure(); SessionFactory 应用程序从SessionFactory(会话工厂)里获得Session(会话)实例。它在多个应用线程间进行共享。通常情况下,整个应用只有唯一的一个会话工厂——例如在应用初始化时被创建。然而,如果你使用Hibernate访问多个数据库,你需要对每一个数据库使用一个会话工厂。 会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据。 调用代码 SessionFactory sessionFactory = cfg.buildSessionFactory(); Session Session不是线程安全的,它代表与数据库之间的一次操作会话。 Session也称为持久化管理器,因为它是与持久化有关的操作接口。 Session通过SessionFactory打开,在所有的工作完成后,需要关闭。 Session缓存其管理的持久化对象。 调用代码 Session session = sessionFactory.openSession(); Transaction 它将应用代码从底层的事务实现中抽象出来——这可能是一个JDBC事务,一个JTA用户事务或者甚至是一个公共对象请求代理结构(CORBA)——允许应用通过一组一致的API控制事务边界。 这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。 Hibernate提供的事务提交模式默认为非自动提交模式(默认:autoCommit=false)

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档