package cn.itcast.tool.hibernate.util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public final class HibernateUtil {
private static SessionFactory sessionFactory;
private static ThreadLocal<Session> threadLocal=new ThreadLocal<Session>();;
private HibernateUtil(){
}
static{
sessionFactory=new Configuration().configure().buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
public static Session getSession(){
Session session=threadLocal.get();
if(session==null || !session.isOpen()){
session=sessionFactory.openSession();
threadLocal.set(session);
}
return session;
}
public static void closeCurrentSession(){
Session session=threadLocal.get();
if(session!=null){
session.close();
threadLocal.set(null);
}
}
}