Hibernate Session实例剖析
创始人
2024-06-07 21:40:27
0

在向大家详细介绍Session之前,首先让大家了解下如何获得Session对象,然后全面介绍Hibernate Session实例。

Session(org.hibernate.Session)

(1) 单线程的,短寿命的对象,代表了一次会话的过程。实际上是把一个JDBC Connection打包了,它可以包含一些持久化对象的缓存看作介于数据连接与事物管理一种中间接口.

在Hibernate的设计者中.他们将session看作介于数据连接与事物管理的一种中间接口或者想象成一个持久对象的缓冲区hibernate能检测到这些持久对象的改变,并及时刷新数据库

(2) 每一个Hibernate Session实例和一个数据库事务绑定通常将每一个Hibernate Session实例和一个数据处理库事务绑定就是说,每执行一个数据库事务(操作),都应该先创建一个新的Hibernate Session实例.

如果事务执行中出现异常,应该撤消事务.不论事务执行成功与否,最后都应该调用Session的close()方法,从而释放Hibernate Session实例占用的资源.

(3) 如何获得Session对象

首先创建SessionFactory对象应用服务器如果访问多个数据源时,则应该产生多个SessionFactory;

但是仅仅为了服务与某个请求时,不要创建一个新的SessionFactory,因为创建SessionFactory需要消耗大量的资源.然后根据SessionFactory再创建Session对象

  1. Session session=sessionFactory.openSession();  
  2. Transaction tx;  
  3. try{  
  4. tx=session.beginTransaction();//开始一个事务  
  5. .......//执行事务  
  6. tx.commit();  
  7. }catch(Exception e){//如果出现异常就撤消事务  
  8. if(tx!=null)  
  9. tx.rollback();  
  10. throw e;  
  11. }  
  12. finally//不管事务执行成功与否,最后都关闭Session并且放在finally中以提高安全性  
  13. session.close();  

【编辑推荐】

  1. 描述Hibernate检查id字段
  2. Hibernate Template简单描述
  3. Hibernate DetachedCriteria学习经验
  4. 概述Hibernate equals()方法
  5. Hibernate使用Person对象

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...