hibernate是一个对象关系映射。
Hibernate openSession() 和 getCurrentSession的区别
- SessionFactory sessionFactory = config.buildSessionFactory();
- //方式一
- Session session1 = sessionFactory.openSession();
- //方式二
- Session session2 = sessionFactory.getCurrentSession();
两种方法的区别如下:
(1)openSession每次打开都是新的Session,所以多次获取的Session实例是不同的,并且需要人为的调用close方法进行Session关闭。
(2)getCurrentSession是从当前上下文中获取Session并且会绑定到当前线程,第一次调用时会创建一个Session实例,如果该Session未关闭,后续多次获取的是同一个Session实例;事务提交或者回滚时会自动关闭Sesison,无需人工关闭。
所以我们项目中一般都是获取getCurrentSession()