收藏 分享(赏)

Hibernate帮助文档.ppt

上传人:scg750829 文档编号:8169087 上传时间:2019-06-12 格式:PPT 页数:22 大小:575.50KB
下载 相关 举报
Hibernate帮助文档.ppt_第1页
第1页 / 共22页
Hibernate帮助文档.ppt_第2页
第2页 / 共22页
Hibernate帮助文档.ppt_第3页
第3页 / 共22页
Hibernate帮助文档.ppt_第4页
第4页 / 共22页
Hibernate帮助文档.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、,Hibernate 核 心 API (Core API for Hibernate),杨少波,,中科院计算所职业培训中心,Hibernate 核 心 API,在本讲您能了解如下知识点 (The Emphases in Teaching Materials) 持久实例的生命周期状态 Session接口 Transaction接口 SessionFactory接口 Configuration接口 应用中所需要的JAR类库,1、Hibernate中的持久化对象的生命周期,(1)提供对象状态管理的目的 使开发者不再需要理会底层数据库系统的细节 使用Hibernate的开发者应该总是关注对象的状态(s

2、tate),不必考虑SQL语句的执行 (2)Hibernate 仅仅定义了三种状态:瞬时、持久和脱管,对客户端代码隐藏了其内部实现的复杂性,(3)三种状态相互转换的说明,2、核心API介绍- Session接口,(1)它是轻量级的类 在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。 这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session对象,如果Session的开销太大,会给系统带来不良影响。,(2)但它是非线程安全的值得注意的是Session对象是非线程安全的,因此最好是一个线程只创建一个Session对象(将它设计

3、为局部对象)。,(3)Session看作介于数据连接与事务管理一种中间接口 我们可以将session想象成一个持久对象的缓冲区,Hibernate能检测到这些持久对象的改变,并及时刷新数据库。 (4)每一个Session实例和一个数据库事务绑定 通常将每一个Session实例和一个数据库事务绑定,也就是说,每执行一个数据库事务(操作),都应该先创建一个新的Session实例。 如果事务执行中出现异常,应该撤销事务;同时不论事务执行成功与否,最后都应该调用Session的close()方法,从而释放Session实例占用的资源。,(5)如何获得Session对象 首先创建SessionFacto

4、ry对象,应用程序如果访问多个数据源时,则应该产生多个SessionFactory;但是仅仅为了服务于某个请求时,不要创建一个新的SessionFactory,因为创建SessionFactory 需要耗费大量的资源。,然后根据SessionFactory再创建Session对象,(6)Session的编程规则-需要随时更新和释放 注意:应该要session.close()语句放在finally语句块中。,(7)Sessin 接口中针对单条记录的基本的CURD操作方法save()方法:把Java对象保存数据库中update()方法:更新数据库中的Java对象delete()方法:把Java对象

5、从数据库中删除load()方法:从数据库中加载Java对象 find()方法:从数据库中查询Java对象,3、核心API介绍-Transaction接口 (1)Transaction接口是一个可选的API 事务将应用代码从下层的事务实现中抽象出来这可能是一个JDBC事务,一个JTA用户事务等 这样将允许应用通过一组一致的API控制事务边界。,(2)定义,注意:该接口有多个不同的事务的实现类,(3)从本地事务切换到分布式事务的方法,因为让持久层具备可移植性是人们的理想。Hibernate提供了一套称为Transaction的封装API, 用来把部署环境中的本地事务管理系统转换到Hibernate

6、事务上。,(4)为什么要提供该Transaction 接口数据库类型和个数 Transaction接口是对实际事务实现的一个抽象。 之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移值。,(5)事务编程的基本格式,(6)注意在事务编程中一定要进行事务提交,(1)利用工厂类SessionFactory中取得Session的实例 (2)SessionFactory并不是轻量级的 但要注意的是SessionFactory并不是轻量级的! 实际上它的设计者的意图是让它能在整个应用中共享。 (3)每个数据存储源对应创建一个SessionFactor

7、y(单例),4、核心API介绍- SessionFactory接口,(4)SessionFactory的实现类 SessionFactory的实现类中定义了许多集合类型的属性 它们用于存放Hibernate配置信息、映射元数据信息等。,(5)SessionFactory的缓存 可分为两类:内置缓存和外置缓存。 SessionFactory的内置缓存中存放了Hibernate配置信息和映射元数据信息、同时也缓存了Hibernate自动生成的SQL语句等;,SessionFactory的外置缓存是一个可配置的缓存插件 在默认情况下,SessionFactory不会启用这个缓存插件。 外置缓存能存放

8、大量数据库数据的拷贝,外置缓存的物理介质可以是内存或者硬盘。,(1)作用-加载hibernate.cfg.xml并完成系统的配置 Configuration接口的作用是对Hibernate进行配置、并启动Hibernate和连接数据库系统。在Hibernate的启动过程中,Configuration类的实例首先定位缺省XML配置文件(hibernate.cfg.xml),并读取关的配置项目,然后创建出一个SessionFactory对象。 根据Configuration对象创建一个SessionFactory对象,5、核心API介绍-Configuration接口,(2)也可以采用自定义的XM

9、L配置文件可以指定开发者自己的*.hbm.xml文件的位置,而不是使用默认的classpath下面的hibernate.cfg.xml。但需要在代码中指示开发者自定义的XML配置文件。,然后系统在启动时会自动地查找对应的自定义的XML配置文件。,(4)编程示例此时将需要通过代码添加对应的O/R Mapping映射文件。,(3)如果采用hibernate.properties文件,(1)Hibernate系统核心包,6、在Hibernate时所需要的各个JAR包文件,将hibernate3.jar文件拷贝到程序的上下文类路径下(classpath),和我们应用程序的其他库文件放一起。,(2)在应用Hibernate时还需要一些第三方的类库在运行时,Hibernate框架还需要一些第三方类库,它们在Hibernate发行包的optional和bytecode等目录下。,(3)Hibernate所需要第三方类库的Jar包文件的列表,1、子曰:“学而不思则罔,思而不学则殆。” “学而时习之”,2、子曰:“知之者不如好之者,好之者不如乐之者”,3、子曰:“三人行,必有我师焉”,4、子曰:“我非生而知之者,好古,敏以求之者也”,本讲的简要回顾,5、师者:“传道、授业和解惑”,

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

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

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


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

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

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