(每天进步)hibernate的获取

来源:互联网 发布:网上配眼镜靠谱吗 知乎 编辑:程序博客网 时间:2024/06/16 19:17

hibernate是一个对象关系映射。

Hibernate openSession() 和 getCurrentSession的区别


  1. SessionFactory sessionFactory = config.buildSessionFactory();  
  2.     //方式一  
  3.     Session session1 = sessionFactory.openSession();  
  4.     //方式二  
  5.     Session session2 = sessionFactory.getCurrentSession(); 

两种方法的区别如下:

(1)openSession每次打开都是新的Session,所以多次获取的Session实例是不同的,并且需要人为的调用close方法进行Session关闭。

(2)getCurrentSession是从当前上下文中获取Session并且会绑定到当前线程,第一次调用时会创建一个Session实例,如果该Session未关闭,后续多次获取的是同一个Session实例;事务提交或者回滚时会自动关闭Sesison,无需人工关闭。

所以我们项目中一般都是获取getCurrentSession()
0 0
原创粉丝点击