前言
这篇文章主要是说明了SessionFactory这个对象的特点,以及创建它的工具类。
分析
SessionFactory是一个Hibernate的初始化对象,用来创建session对象。session是操作数据库的。它是工厂模式的,一个数据库对应一个SessionFactory,所以不要轻易的去创建和销毁它,会消耗大量的资源。
代码
工具类
package com.itheima.utils;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
* Hibernate框架的工具类
* @author Administrator
*/
public class HibernateUtils {
// ctrl + shift + x
private static final Configuration CONFIG;
private static final SessionFactory FACTORY;
// 编写静态代码块
static{
// 加载XML的配置文件
CONFIG = new Configuration().configure();
// 构造工厂
FACTORY = CONFIG.buildSessionFactory();
}
/**
* 从工厂中获取Session对象
* @return
*/
public static Session getSession(){
return FACTORY.openSession();
}
}
测试工具类
/**
* 测试工具类
*/
@Test
public void testSave2(){
// 原来:加载配置文件,获取Factory对象,获取session
Session session = HibernateUtils.getSession();
Transaction tr = session.beginTransaction();
Customer c = new Customer();
c.setCust_name("小风");
session.save(c);
// 提交事务
tr.commit();
// 释放资源
session.close();
}