精通Hibernate:Java对象持久化技术详解

一、HIBERNATE

ORM中间件,进行对象的持久化。

 

二、HIBERNATE入门

1Object/Relation Mapping,简称ORM,解决对象-关系映射。

域模型(对象、属性、关联、继承、多态)

对象-关系映射文件(XML

关系数据模型(表、字段、索引、主键、外键)

ORM API

ORM 实现

ORM充当业务逻辑层和数据库层之间的桥梁

2、选用ORM时,应用的上层组件应该和ORM中间件保持独立。

3HIBERNATE 的核心接口

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

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

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

   4.)Transaction接口:管理事务。

   5.)QueryCriteria接口:执行数据库查询。

Query

Criteria

Transation

SessionFactory

Configuration

Session

 

Query

Criteria

Transation

SessionFactory

Configuration

Session

Query

Criteria

Transation

SessionFactory

Configuration

Session

 

三、HIBERNATE对象-关系映射技术

四、HIBERNATE API操纵数据库

1Session接口:操纵数据库的最主要接口,称为持久化管理器,提供了基本的保存、更新、删除、和查询的方法。

2Session的缓存:被称为Hibernate的第一级缓存,在Session的实现类SessionImpl中定义了一系列的Java集合,这些Java集合构成了Session的缓存。它存放被当前工作单元加载的对象,称为持久化对象,它和数据库中的相关记录保持同步。当Sessionload()方法试图从数据库中加载一个对象是,Session先判断缓存中是否存在这个对象,如果存在,就不需要再到数据库中检索,减少访问数据库频率。

3Session实例:是轻量级的,它的创建和销毁不需要消耗太多的资源。通常将每一个Session实例和一个数据库事务绑定,也就是说,每执行一个数据库事务,都应该先创建一个新的Session实例,如果事务执行中出现异常,应该撤销事务,不论事务执行成功与否,最后都应该调用Sessionclose()方法。从而释放Session实例占用的资源。

4Hibernate应用中Java对象的状态:

1.)临时状态:刚刚用new语句创建。

2.)持久化状态:加入到Session的缓存中。

3.)游离状态:已经被持久化,但不再处于Session的缓存中。

5Session的保存、更新、删除和查询方法

   1.)Sessionsave()方法。

   2.)Sessionupdate()方法。

   3.)SessionsaveOrUpdate()方法:如果传入的参数是临时对象,就调用save()方法,如果传入的是游离的对象,就调用update()方法(如何判断对象是临时对象还是游离对象?)。

   4.)Sessionload()get()方法:对象不存再,load()抛出异常,而get()返回null

   5.)Sessiondelete()方法。

 

五、HIBERNATE的检索策略和检索方式

1、检索策略:

1.)立即检索。

2.)延迟检索:lazy

3.)迫切左外连接检索:outer-jion

2、检索方式:

   1.)导航对象图检索方式:getOrders().iterator()

   2.)OID检索方式:Sessionget()load()方法。

   3.)HQL检索方式:Sessionfind()方法(不具动态参数绑定功能)、HibernateQuery接口。

   4.)QBC检索方式:Query By CriteriaCriteria接口。

   5.)本地的SQL检索方式:

六、数据库事务、并发、缓存与性能优化

1、数据库事务由一组业务逻辑上相互依赖的SQL语句组成,它必须具备ACID特征。数据库管理系统采用日志来保证事务的原子性、一致性和持久化型,采用锁机制来实现事务的隔离性。

2、数据库事务必须具备特征:原子性、一致性、隔离性、持久性。

3、缓存:

   1.)第一级缓存:Session的缓存。

   2.)第二级缓存:SessionFactory的外置缓存。

 

七、HIBERNATE高级配置

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值