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 }

 

posted @ 2017-12-12 21:43  Garcia11  阅读(335)  评论(0)    收藏  举报