打开session的方式

openSession

        1、只要调用一次openSession方法都会打开一个新的连接
        2、这种方式效率不是很高
        3、利用这种方式很容器的就可以操作session的缓存

getCurrentSession

1、把session放入到threadlocal中,确保线程安全
2、在整个线程中可以共享session,并且该session只有一个
3、在threadlocal中存放Map,
因为整个hibernate应用sessionFactory只有一个,所以session肯定只有一个
getCurrentSession使用
步骤1:在hibernate.cfg.xml文件中配置
步骤2:获取当前线程的session
Session session = sessionFactory.getCurrentSession();
Transaction transaction = session.beginTransaction();
Person person = (Person)session.get(Person.class, 2L);
transaction.commit();

说明:
1、crud操作都必须在事务的条件下进行
2、当事务提交,session自动关闭

你可能感兴趣的:(打开session的方式)