Hibernate2.ppt_第1页
Hibernate2.ppt_第2页
Hibernate2.ppt_第3页
Hibernate2.ppt_第4页
Hibernate2.ppt_第5页
已阅读5页,还剩10页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Hibernate核心接口,本章内容,Session缓存 持久化对象状态 Configuration SessionFactory Session Transaction Query,Session缓存,Hibernate对其持久化对象实现了缓存管理,来提高应用性能,Hibernate支持两级缓存管理,Session缓存为一级缓存,是系统内置的,不能被卸载。 Hibernate的二级缓存是可选的,默认是不支持的,应用必须明确配置二级缓存才能使用。 Session缓存的作用: 降低访问数据库的频率 保证缓存中的对象与数据库中的相关记录保持同步,持久化对象的状态,对于需要被持久化的对象,处于以下三

2、种状态之一: 临时状态(Transient)刚刚用new创建,还没有被持久化,还不处于Session缓存之中 持久化状态(Persistent)已经被持久化,加入到Session的缓存之中 游离状态(Detached)已经被持久化,但不再处于Session的缓存之中,对象的状态转换,临时对象的特征,不处于Session的缓存中 在数据库中没有对应的记录 以下情况会使对象进入临时状态: 当通过new语句刚创建了一个对象 Session的delete()方法会使一个对象从持久化状态或游离状态进入临时状态,持久化对象的特征,位于一个Session实例的缓存中 持久化对象和数据库中相关的记录对应 Se

3、ssion在清理缓存时,会根据持久化对象的属性的变化来同步更新数据库 Session的save()方法把临时对象变为持久化对象 Session的load()或get()方法返回的是持久化对象,find()方法返回的List元素 Session的update(), saveOrUpdate(),lock()使对象从游离状态变成持久化状态。,游离对象的特征,不再处于Session的缓存中 游离对象是从持久化对象转变过来的 调用Session的close()方法时,Sessin的缓存被清空,缓存中的持久化对象会变成游离对象 Session的evict()能从缓存中删除一个对象,使之从持久化状态变成游

4、离状态,Hibernate核心接口,Hibernate核心接口,Configuration SessionFactory Session Transaction Query/Criteria,Configuration,Configuration 类负责管理Hibernate 的配置信息,这些信息由配置文件提供,包括如下内容: Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等。 Hibernate映射文件(*.hbm.xml)。 调用代码 属性文件(perties) Configuration cfg

5、 = new Configuration(); cfg.addClass(XXX.class);/该方法加载XXX.hbm.xml cfg.addResource(); Xml文件(hibernate.cfg.xml) Configuration cfg = new Configuration().configure();,SessionFactory,应用程序从SessionFactory(会话工厂)里获得Session(会话)实例。它在多个应用线程间进行共享。通常情况下,整个应用只有唯一的一个会话工厂例如在应用初始化时被创建。然而,如果你使用Hibernate访问多个数据库,你需要对每一个

6、数据库使用一个会话工厂。 会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据。 调用代码 SessionFactory sessionFactory = cfg.buildSessionFactory();,Session,Session不是线程安全的,它代表与数据库之间的一次操作会话。 Session也称为持久化管理器,因为它是与持久化有关的操作接口。 Session通过SessionFactory打开,在所有的工作完成后,需要关闭。 Session缓存其管理的持久化对象。 调用代码 Session session = sessionFactory.openSessi

7、on();,Transaction,它将应用代码从底层的事务实现中抽象出来这可能是一个JDBC事务,一个JTA用户事务或者甚至是一个公共对象请求代理结构(CORBA)允许应用通过一组一致的API控制事务边界。 这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。 Hibernate提供的事务提交模式默认为非自动提交模式(默认:autoCommit=false),因此使用Hibernate进行操作时(增、删、改)必须显示的调用Transaction的API。 调用代码 Transaction tx = session.beginTransaction(); mit()/rollback();,Query,Query接口封装了Hibernate强大的对象查询能力,同时也支持数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论