收藏 分享(赏)

Hibernate3.ppt

上传人:11xg27ws 文档编号:12142288 上传时间:2021-10-05 格式:PPT 页数:15 大小:332KB
下载 相关 举报
Hibernate3.ppt_第1页
第1页 / 共15页
Hibernate3.ppt_第2页
第2页 / 共15页
Hibernate3.ppt_第3页
第3页 / 共15页
Hibernate3.ppt_第4页
第4页 / 共15页
Hibernate3.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

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实例的缓存中 持久化对象和数据库中相关的记录对应

3、 Session在清理缓存时,会根据持久化对象的属性的变化来同步更新数据库 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)。 调用代码 属性文件(hibernate.properties) Configuration

5、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访问多个数据库,你需要对

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报