hibernate框架的api详解 Configuration SessionFactory Session Transaction
Configuration功能:
configuration用于配置加载类,用于加载主配置,orm元数据加载,直接调用空参构造函数进行创建。
使用空参的函数configure()来加载src下名字为hibernate.cfg.xml的主配置文件,名字大小写都不能有错。
Configuration conf=new Configuration(); conf.configure();//默认加载src下名为hibernate.cfg.xml的主配置文件
SessionFactory
SessionFactory是用于创建操作数据库核心对象session对象的工厂。
注意:1.sessionfactory负责保存和使用所有的配置信息,消耗内存资源非常大
2.sessionFactory属于线程安全的对象设计。
结论:要在web项目中只创建一个SessionFactory对象
sf.openSession()-----打开一个新的session对象
sf.getCurrentSession()------获得一个与线程绑定的Session对象
Session对象
功能:表达hibernate与数据库之间的连接,而且还可以完成数据库中数据的增删改查
Transaction对象用于操作事务
Transaction tx=session.getTransaction();---获得操作事务的tx对象
Transaction tx=session.beginTransaction();----获得事务对象并将其开启,建议使用
tx.commit();-----提交事务
tx.rollback();-----回滚事务
释放资源
session.close();
sf.close();
HibernateUtils封装
1 package cn.itheima.utils; 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.cfg.Configuration; 6 7 public class HibernateUtils { 8 private static SessionFactory sf; 9 10 static{ 11 //1 创建,调用空参构造 12 Configuration conf = new Configuration().configure(); 13 //2 根据配置信息,创建 SessionFactory对象 14 sf = conf.buildSessionFactory(); 15 } 16 17 //获得session => 获得全新session 18 public static Session openSession(){ 19 //3 获得session 20 Session session = sf.openSession(); 21 22 return session; 23 24 } 25 //获得session => 获得与线程绑定的session 26 public static Session getCurrentSession(){ 27 //3 获得session 28 Session session = sf.getCurrentSession(); 29 30 return session; 31 } 32 33 }

浙公网安备 33010602011771号