package model;
import org.hibernate.*;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
@SuppressWarnings("deprecation")
public class HibernateSessionFactory {
private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
private static Configuration configuration = new Configuration();
public static SessionFactory sessionFactory;
private static String configFile = CONFIG_FILE_LOCATION;
static {
try{
configuration.configure(configFile);
ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(sr);
}catch(Exception e){
e.printStackTrace();
}
}
private HibernateSessionFactory() {
}
public static Session getSession() {
Session session = threadLocal.get();
if (session == null || !session.isOpen()) {
session = (sessionFactory != null) ? sessionFactory.openSession() : null;
threadLocal.set(session);
}
return session;
}
/**
* 提交Session
* @param session
* @author Feng
*/
public static void commitSession(Session session) {
Transaction trans = session.beginTransaction();
trans.commit();
session.close();
}
}