1、SessionFactory是线程安全的,可以让多个执行线程同时存取SessionFactory而不会有数据共享的问题。
2、绘话工厂缓存了生成Sql语句和Hibernate在运行时使用的映射元数据。
3、SessionFactory是重量级的,因为一般情况下,一个项目通常只需要创建一个SessionFactory就足够(单例模式)。
代码:
package cn.itcast.utils;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
private static final Configuration config;
private static final SessionFactory factory;
static{
config = new Configuration().configure();
factory =config.buildSessionFactory();
}
public static Session getSessinon(){
return factory.openSession();
}
}
需要注意静态代码块stastic的使用。
Session对象只被创建了一次,但是可以实现多次调用。