Hibernate 能够经过sessionFactory.openSession()和sessionFactory.getCurrentSession()来得到session,下面来浅说一下二者区别。数据库
【sessionFactory.openSession()】
经过session工厂sessionFactory.openSession()方法来得到一个session,每次都建立一个新的session出来,而且每次Hibernate都会打开数据库和应用程序的链接。session
【sessionFactory.getCurrentSession()】
经过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;
ide