package hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateSessionFactory {
private static SessionFactory factory;
private static Configuration configuration = new Configuration();
private static final ThreadLocal<Session> local = new ThreadLocal<Session>();
static {
try {
configuration.configure("/hibernate.cfg.xml");
factory = configuration.buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Session getSession() throws Exception{
Session session=local.get();
if(session==null||session.isOpen()==false){
session=factory.openSession();
local.set(session);
}
return session;
}
public static void closeSession() throws Exception{
Session session=local.get();
if(session!=null){
session.close();
}
local.set(null);
}
}