package test.hibernate.hbmSessionManage;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
public class App {
private static SessionFactory sessionFactory = new Configuration()//
.configure("test/hibernate/hbmSessionManage/myhibernate.cfg.xml")//
.buildSessionFactory();
/*
* 要想应用SessionFactory.getCurrentSession()办法
* 须要在Hibernate主配置文件中配置current_session_context_class项
*/
@Test
public void testSession() throws Exception {
// Session session1 = sessionFactory.getCurrentSession();
// Session session2 = sessionFactory.getCurrentSession();
// Session session1 = sessionFactory.openSession();
// Session session2 = sessionFactory.openSession();
Session session1 = sessionFactory.openSession();
Session session2 = sessionFactory.getCurrentSession();
System.out.println(session1 != null);
System.out.println(session1 == session2);
}
/*
* getCurrentSession():指定高低文中(如thread)查找绑
* 定的Session对象,如果有就返回;
* 如果没有就创立一个并绑定,然后返回 openSession():只是
* 开启一个新的Session,不会做绑定和查找操作
*/
@Test
public void testSessionClose() throws Exception {
Session session2 = sessionFactory.getCurrentSession();
session2.beginTransaction();
System.out.println("xxxxxxxxxxxxxxxxxxxxxx");
session2.getTransaction().commit();
// session2.close();
}
}
package test.hibernate.hbmSessionManage;
import