(每天进步)hibernate的获取

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()

你可能感兴趣的:(每天进步一点点)