Spring 对Hibernate 的简化

Spring 对Hibernate 的简化
Hibernate 的持久层访问必须按如下步骤进行:
(1)创建Configuration 实例。
(2) 创建SessionFactory 实例。
(3)创建Session 实例。
(4) 打开事务。
(5) 开始持久化访问。
(6) 提交事务。
(7) 如果遇到异常,回滚事务。
(8) 关闭Session 。
虽然可以采用类似于HibernateUtils 工具类封装了部分过程,但依然不够简沽,需要通过代码显式地打开ession ,开始事务,然后关闭事务,最后关闭Session 。而Spring提供更简单的方式操作持久层,无须显式地打开Session ,也无须在代码中执行任何的事务操作语句。
Spring 提供了HibernateTemplate ,用于持久层访问,该模板类无须显示打开Session及关闭Session 。它只要获得SessionFactory 的引用,将可以智能打开Session ,并在持久化访问结束后关闭Session ,程序开发只需完成持久层逻辑,通用的操作则由HibernateTemplate 完成。 

事务的处理,当然也可以采用编程式事务。Spring 提供了编程式事务的支持。通常,推荐使用声明式事务,使用声明式事务有如下优点:
·代码中无须实现任何事务逻辑,程序开发者可以更专注于业务逻辑的实现。
·声明式事务不与任何事务策略藕合,采用声明式事务可以方便地在全局事务和局部事务之间切换。
Spring 的声明式事务以Spring 的AOP 为基础,开发者可以不需要对AOP 深入了解,只需按本章后面部分配置声明式事务代理即可。
Spring 对Hibernate 的简化,还得益于Spring 异常处理策略。Spring 认为:底层数据库异常几乎都不可恢复,强制处理底层数据库几乎没有任何意义,但传统JDBC 数据库访问的异常都是checked 异常,必须使用try... 、catch 块处理。
另外, Spring 包装了Hibernate 异常,并转换到DataAccessException 继承树内,所有DataAccessException 全部是runtime 异常,但并不强制捕捉。归纳起来, Spring 对Hibernate 的简化主要有如下几个方面。
·基于依赖注入的SessionFactory 管理机制, SessionFactory 是执行持久化操作的核心组件。传统Hibernate 应用中, SessionFactory 必须手动创建,通过依赖注入,代码无须关心SessionFactory ,而它的创建和维护由BeanFactory 负责管理。
·更优秀的Session 管理机制。Spring 提供"每事务一次Session" 的机制,该机制能大大提高了系统性能,而且Spring 对Session 的管理是透明的,无须在代码中操作Session 。
·统一的事务管理。无论是编程式事务,还是声明式事务, Spring 都提供一致的编程模型,无须烦琐的开始事务、显式提交及回滚。如果使用声明式事务管理,可将事务管理逻辑与代码分离,使事务可在全局事务和局部事务之间切换。
·统一的异常处理机制。不再强制开发者在持久层捕捉异常,通常持久层异常被包装成DataAccessException 异常的子类,将底层数据库异常包装成业务异常,开发者可以自己决定在合适的层处理异常。
• HibernateTemplate 支持类。HibernateTempate 能完成大量Hibernate 持久层操作,这些操作大多只需要一些简单的代码即可实现。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值