Hibernate工具类之获取SessionFactory和Session
由于SessionFactory是重量级的,也就是说创建SessionFactory需要消耗大量的资源,所以在整个应用程序中最好只存在一个SessionFactory,这就需要把获取SessionFactory的方法单独抽取出来封装成一个工具类
package com.hibernate.utils;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HbnUtils {
private static SessionFactory sessionFactory;
/**
*
* @return Session
*/
public static Session getSession(){
return getSessionFactory().getCurrentSession();
}
/**
* SessionFactory是重量级的
* 最好做成单例模式
* @return SessionFactory
*/
public static SessionFactory getSessionFactory(){
//保证SessionFactory为单例
if (sessionFactory == null ||sessionFactory.isClosed()) {
sessionFactory = new Configuration().configure().buildSessionFactory();
}
return sessionFactory;
}
}