Hibernate框架学习(二)——api详解

一、Configuration对象

功能:配置加载类,用于加载主配置,orm元数据加载。

         //1、创建,调用空参构造(还没有读配置文件)
Configuration conf=new Configuration();
//2、读取指令配置文件=>空参加载方法,加载src下的hibernate.cfg.xml文件
conf.configure(); //3、读取指定orm元数据(扩展),如果主配置中已经引入映射配置,不需要手动加载
//conf.addResource(resourceName);
//conf.addClass(persistentClass); //4、根据配置信息创建SessionFactory对象
SessionFactory sf = conf.buildSessionFactory();

二、SessionFactory对象

功能:用于创建操作数据库核心对象Session对象的工厂,简单说功能就一个——>创建session对象。

注意:1.SessionFactory负责保存和使用所有配置信息,消耗内存资源非常大
      2.SessionFactory属于线程安全的对象设计
结论:保证在web项目中只创建一个SessionFactory

      //5、获得session
//打开一个新的session对象
sf.openSession();
//获得一个与线程绑定的session对象
sf.getCurrentSession();

在实际项目使用中,常常会抽取出一个HibernateUtils的工具类,用来提供Session对象。

Hibernate工具类:

 package cn.itheima.utils;

 import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; public class HibernateUtils {
//保证web项目中只创建一个SessionFactory
private static SessionFactory sf; static{
Configuration conf=new Configuration().configure();
sf = conf.buildSessionFactory();
} //获得session=>获得全新的session
public static Session openSession(){
Session session = sf.openSession();
return session;
} //获得session=>获得与线程绑定的session
public static Session getCurrentSession(){
Session session = sf.getCurrentSession();
return session;
} //测试一下工具类
public static void main(String[] args){
System.out.print(HibernateUtils.openSession());
}
}

三、Session对象

功能:表达Hibernate框架与数据库之间的连接(会话), 类似于JDBC年代的Connection对象,还可以完成对数据库中数据的增删改查操作。
    
   session是Hibernate操作数据库的核心对象

1、获得事务

Hibernate框架学习(二)——api详解

2、session的新增

Hibernate框架学习(二)——api详解

3、session的查询(通过id,第二个参数要带数据类型,如下Long类型,在1后面添加l)

Hibernate框架学习(二)——api详解

4、session的修改(通过id)

Hibernate框架学习(二)——api详解

5、session的删除(通过id)

Hibernate框架学习(二)——api详解

四、Transaction对象

功能:封装了事务的操作

1、打开事务

方式一:

Hibernate框架学习(二)——api详解

方式二:

Hibernate框架学习(二)——api详解

2、提交事务

Hibernate框架学习(二)——api详解

3、回滚事务

Hibernate框架学习(二)——api详解

上一篇:Codeforces Round #419 (Div. 2) B. Karen and Coffee(经典前缀和)


下一篇:android开发 获取父控件的高宽