当前位置 : 主页 > 编程语言 > c++ >

hibernate(Session)工具类

来源:互联网 收集:自由互联 发布时间:2021-07-03
Session工具类 import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;/** * * * Title: HibernateUtil * * * Description:session工具类 * * * Company
Session工具类
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 * 
 * 

* Title: HibernateUtil *

*

* Description:session工具类 *

*

* Company: www.itcast.com *

* * @author 传智.燕青 * @date 2016年2月2日 * @version 1.0 */ public class HibernateUtil { // 会话工厂,以单例方式管理 private static SessionFactory sessionFactory; // ThreadLocal存储session private static ThreadLocal session = new ThreadLocal (); // 以单例方式管理sessionFactory static { try { sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory(); } catch (HibernateException e) { e.printStackTrace(); throw new HibernateException("初始化会话工厂失败!"); } } //得到一个单例的会话工厂 public static SessionFactory getSessionFactory(){ return sessionFactory; } //获取一个新session public static Session openSession(){ return sessionFactory.openSession(); } //获取当前与线程绑定的session,如果获取不到则创建一个新session并与当前线程绑定 // public static Session getCurrentSession() throws HibernateException { // //获取当前线程绑定的session // Session s = (Session) session.get(); // if (s == null) { // //创建一个新session // s = sessionFactory.openSession(); // //新session并与当前线程绑定 // session.set(s); // } // return s; // } public static Session getCurrentSession() throws HibernateException { return sessionFactory.getCurrentSession(); } //关闭当前线程绑定的session // public static void closeSession() throws HibernateException { // //获取当前线程绑定的session // Session s = (Session) session.get(); // if (s != null){ // //关闭session // s.close(); // } // session.set(null); // } public static void closeSession() throws HibernateException { sessionFactory.getCurrentSession().close(); } }
网友评论