欢迎来到天天文库
浏览记录
ID:43089982
大小:575.50 KB
页数:22页
时间:2019-09-29
《Hibernate初级教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Hibernate核心API(CoreAPIforHibernate)杨少波njtuyang@gmail.com中科院计算所职业培训中心Hibernate核心API在本讲您能了解如下知识点(TheEmphasesinTeachingMaterials)持久实例的生命周期状态Session接口Transaction接口SessionFactory接口Configuration接口应用中所需要的JAR类库1、Hibernate中的持久化对象的生命周期(1)提供对象状态管理的目的使开发者不再需要理会底层数据库系统的细节使用Hi
2、bernate的开发者应该总是关注对象的状态(state),不必考虑SQL语句的执行(2)Hibernate仅仅定义了三种状态:瞬时、持久和脱管,对客户端代码隐藏了其内部实现的复杂性(3)三种状态相互转换的说明2、核心API介绍---Session接口(1)它是轻量级的类在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session对象,如果Session的开销太大,会给系统带来不良影响。(2)但它是非线程
3、安全的值得注意的是Session对象是非线程安全的,因此最好是一个线程只创建一个Session对象(将它设计为局部对象)。(3)Session看作介于数据连接与事务管理一种中间接口我们可以将session想象成一个持久对象的缓冲区,Hibernate能检测到这些持久对象的改变,并及时刷新数据库。(4)每一个Session实例和一个数据库事务绑定通常将每一个Session实例和一个数据库事务绑定,也就是说,每执行一个数据库事务(操作),都应该先创建一个新的Session实例。如果事务执行中出现异常,应该撤销事务;同时不论事
4、务执行成功与否,最后都应该调用Session的close()方法,从而释放Session实例占用的资源。(5)如何获得Session对象首先创建SessionFactory对象,应用程序如果访问多个数据源时,则应该产生多个SessionFactory;但是仅仅为了服务于某个请求时,不要创建一个新的SessionFactory,因为创建SessionFactory需要耗费大量的资源。然后根据SessionFactory再创建Session对象(6)Session的编程规则---需要随时更新和释放注意:应该要session.
5、close()语句放在finally语句块中。(7)Sessin接口中针对单条记录的基本的CURD操作方法save()方法:把Java对象保存数据库中update()方法:更新数据库中的Java对象delete()方法:把Java对象从数据库中删除load()方法:从数据库中加载Java对象find()方法:从数据库中查询Java对象3、核心API介绍---Transaction接口(1)Transaction接口是一个可选的API事务将应用代码从下层的事务实现中抽象出来——这可能是一个JDBC事务,一个JTA用户事务等
6、这样将允许应用通过一组一致的API控制事务边界。(2)定义注意:该接口有多个不同的事务的实现类(3)从本地事务切换到分布式事务的方法因为让持久层具备可移植性是人们的理想。Hibernate提供了一套称为Transaction的封装API,用来把部署环境中的本地事务管理系统转换到Hibernate事务上。(4)为什么要提供该Transaction接口—数据库类型和个数Transaction接口是对实际事务实现的一个抽象。之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地
7、移值。(5)事务编程的基本格式(6)注意在事务编程中一定要进行事务提交(1)利用工厂类SessionFactory中取得Session的实例(2)SessionFactory并不是轻量级的但要注意的是SessionFactory并不是轻量级的!实际上它的设计者的意图是让它能在整个应用中共享。(3)每个数据存储源对应创建一个SessionFactory(单例)4、核心API介绍---SessionFactory接口(4)SessionFactory的实现类SessionFactory的实现类中定义了许多集合类型的属性它们用
8、于存放Hibernate配置信息、映射元数据信息等。(5)SessionFactory的缓存可分为两类:内置缓存和外置缓存。SessionFactory的内置缓存中存放了Hibernate配置信息和映射元数据信息、同时也缓存了Hibernate自动生成的SQL语句等;SessionFactory的外置缓存是一个可配置
此文档下载收益归作者所有