Hibernate的主要类,Configuration,SessionFactory

Configuration类

类声明:

public class Configuration  extends Object implements Serializable

一,Configuration的作用是对Hibernate进行配置 以及对其进行启动。它包括:
Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池。Hibernate映射文件(*.hbm.xml)等。
在Hibernate的启动过程中 Configuration类的实例首先定位映射文档的位置 ,读取这些配置 然后创建一个SessionFactory对象。

二,一个org.hibernate.cfg.Configuration实例代表了一个应用程序中Java类型到SQL数据库映射的完整集合。Configuration被用来构建一个不可变的SessionFactory,映射定义则由不同的XML映射定义文件编译而来。

Hibernate配置的两种方法:

属性文件(hibernate.properties)。
当我们调用:Configuration cfg = new Configuration();
时,Hibernate会自动在目录下搜索hibernate.properties文件,并将其读取到内存中作为后续操作的基础配置

Xml文件(hibernate.cfg.xml)。
当我们调用:Configuration cfg = new Configuration().configure()//这里括号内是.xml文件的全类名;
时,Hibernate会自动在目录下搜索hibernate.cfg.xml文件,并将其读取到内存中
作为后续操作的基础配置

Configuration的加载方式

configuration有三种加载方式,一般我们使用hibernate.cfg.xml ,该文件设置了数据库连接的属性和hbm.xml映射文件配置 ,hibernate会自动加载该配置属性, 并自动找到POJO。 因此要取得Configuration对象 ,只需要简单的创建该对象即可。

Configuration cfg = new Configuration();
    cfg.configure(“config/hibernate.cfg.xml");

SessionFactory类

接口声明

public interface SessionFactory extends Referenceable, Serializable
  1. SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象(SessionFactory是生成Session的工厂)。这里用到了工厂模式。一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
  2. SessionFactory保存了对应当前数据库配置的所有映射关系,同时也负责维护当前的二级数据缓存。
  3. Hibernate4 新增了一个 ServiceRegistry 接口,所有基于 Hibernate 的配置或者服务都必须统一向这个 ServiceRegistry 注册后才能生效。
 Configuration configuration = new Configuration().configure();
 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().
                 applySettings(configuration.getProperties()).buildServiceRegistry();
 SessionFactory sessionFactory =  configuration.buildSessionFactory(serviceRegistry);                                  

ServiceRegistry接口
ServiceRegistry 是 Service 的注册表, 它为Service提供了一个统一的加载 / 初始化 / 存放 / 获取机制.

猜你喜欢

转载自blog.csdn.net/xiao_ma_csdn/article/details/79705241
今日推荐