Hibernate笔记-----------Hibernate的核心接口


主要有5个核心接口:

1)Configuration接口:配置Hibernate,根启动Hibernate,创建SessionFactory对象。

Hibernate的应用通过Configuration获取对象——关系映射文件的元数据和动态配置Hibernate的属性,创建SessionFactory对象。

2)SessionFactory接口:初始化Hibernate,充当数据源的代理,创建Session对象。

一个SessionFactory对应一个数据源,从SessionFactory中获取Session实例:

SessionFactory是线程安全的,表示同一个实例可以被应用的多个线程所共享。

它是重量级的,表示不能随意创建或销毁它的实例。如果应用只访问同一个数据库,则只需要创建一个SessionFactory实例,在应用初始化的时候创建该实例,如果应用同时访问多个数据库,则需要为每个数据库创建一个单独的SessionFactory实例。

SessionFactory是重量级的是因为它有一个很大的缓存,用来存放预定义的SQL语句以及映射元数据等。用户可以为SessionFactory配置一个缓存插件,叫二级缓存,用来存放被工作单元读过的数据,将来其他工作单元可能会用到这些数据,因此这个缓存被所有工作单元所共享。一个工作单元通常对应一个事务。

3)Session接口:负责保存,更新,删除,加载,查询对象。

被称作持久化管理器,提供了持久化的相关操作。有如下特点:

线程不安全,要避免多个线程共享一个Session实例。

轻量级。创建和销毁不需要消耗太多的资源,意味着程序中经常创建和销毁Session对象,如为每个客户请求分配单独的Session实例或为每个工作单元分配单独的Session实例。

Session有一个一级缓存,它存放当前工作单元加载的对象,每个Session实例都有自己的缓存,这个Session实例的缓存只能在当前工作单元访问。

4)Transaction接口

是Hibernate的事务接口,它对底层的事务进行了封装,底层事务接口包括:

JDBC

JTA

CORBA API

Hibernate应用通过一致的Transaction接口声明事务边界,有助于应用在不同环境或容器移植。

5)Query和Criteria接口:执行数据库查询

Query和Criteria接口是Hibernate的查询接口,用于向数据库查询对象,以及控制执行查询的过程。Query实例中封装了一个面向对象的HQL语句,它引用类名以及属性名代替表名跟字段名。Criteria接口完全封装了基于字符串形式的查询语句,比Query接口更加面向对象,Criteria接口擅长执行动态查询语句。


事件处理接口:

当程序通过Hibernate来加载,保存,更新或删除对象时,会触发Hibernate的拦截器以及事件监听器做出相应的处理:

事件及事件监听器接口:

在Hibernate API,针对每一种事件都有相应的事件监听器,如加载对象会触发org.hibernate.event.LoadEvent事件,该事件由org.hibernate.event.LoadEventListener监听器处理。。。

org.hibernate.Interceptor接口:

应用程序可以定义实现Interceptor接口的类,Interceptor实现类负责响应持久化类的实例被加载,保存,更新或删除的事件。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值