Chinaunix首页 | 论坛 | 博客
  • 博客访问: 63608
  • 博文数量: 15
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 207
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-22 16:04
文章分类
文章存档

2014年(15)

分类: Java

2014-04-01 09:14:39

Hibernate 可以通过sessionFactory.openSession()和sessionFactory.getCurrentSession()来获得session,下面来浅说一下两者区别。


     通过session工厂sessionFactory.openSession()方法来获得一个session,每次都创建一个新的session出来,并且每次Hibernate都会打开数据库和应用程序的连接。

    通过session工厂的sessionFactory.getCurrentSession()方法获得session,并且与当前线程ThreadLocal绑定,但要在Hibernate中配置属性参数 current_session_context_class ,并且value设置为thread。否则一般会报没有配置当前线程的错误。通过此方式获得session有4个要点:

   1)如果当前线程中没有session,通过openSession方法来获得一个新的session,并把新的session放到当前线程中;

   2)从当前线程中的到session;

   3)通过getCurrentSession()方法执行CRUD必需要开启事务;

   4)一半不用手动关闭session;
阅读(1875) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~