Hibernate的常用关键类以及接口介绍

时间:2023-03-08 17:55:57
Hibernate的常用关键类以及接口介绍

上一篇初步的对Hibernate进行了认识,并测试了Hibernate的HelloWorld, 这里主要介绍HibernateTest类中的相关类和接口,以及其作用和特性,关于Session中的相关方法,下篇中会作为重点体会学习。

1、Configuration 类

•     Configuration 类负责管理 Hibernate 的配置信息。包括:

–    Hibernate 运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等(对应hibernate.cfg.xml 文件)。

–    持久化类与数据表的映射关系(*.hbm.xml 文件)

•     创建 Configuration 的两种方式

A. 属性文件(hibernate.properties):

Configuration cfg= new Configuration();

B.Xml文件(hibernate.cfg.xml

Configuration cfg= new Configuration().configure();

C. Configuration 的 configure 方法还支持带参数的访问:

File file = newFile(“hibernate.cfg.xml”);
Configuration cfg= new Configuration().configure(file);

2、SessionFactory 接口

•     针对单个数据库映射关系经过编译后的内存镜像,是线程安全的。

•     SessionFactory 对象一旦构造完毕,即被赋予特定的配置信息

•     SessionFactory是生成Session的工厂

•     构造 SessionFactory 很消耗资源,一般情况下一个应用中只初始化一个 SessionFactory 对象。

•     Hibernate4 新增了一个 ServiceRegistry 接口,所有基于 Hibernate 的配置或者服务都必须统一向这个ServiceRegistry  注册后才能生效

•     Hibernate4 中创建 SessionFactory 的步骤:

   Configuration cfg=new Configuration().configure();
ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
sessionFactory=cfg.buildSessionFactory(serviceRegistry);

3、Session接口

•     Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate 运作的中心,所有持久化对象必须在 session 的管理下才可以进行持久化操作。此对象的生命周期很短。Session 对象有一个一级缓存,显式执行 flush 之前,所有的持久层操作的数据都缓存在 session 对象处。相当于 JDBC 中的 Connection

•     持久化类与 Session 关联起来后就具有了持久化的能力。

•     Session 类的方法:

•     取得持久化对象的方法: get() load()

•     持久化对象都得保存,更新和删除:save(),update(),saveOrUpdate(),delete()

•     开启事务: beginTransaction().

•     管理 Session 的方法:isOpen(),flush(),clear(), evict(), close()等

4、Transaction(事务)

•     代表一次原子操作,它具有数据库事务的概念。所有持久层都应该在事务管理下进行,即使是只读操作。

 Transaction tx =session.beginTransaction();

•     常用方法:

–    commit():提交相关联的session实例

–    rollback():撤销事务操作

–    wasCommitted():检查事务是否提交