Spring对Hibernate的简化


Hibernate 的持久层访问必须按如下步骤进行:

1 )创建 Configuration 实例

2 )创建 SessionFactory 实例

3 )创建 Session 实例

4 )打开事务

5 )开始持久化访问

6 )提交事务

7 )如果遇到异常,回滚事务

8 )关闭 Session

HQL 查询一节,已经采用 HibernateUtils 工具类封装部分过程。但依然不够简洁,需要通过代码显式地打开 Session ,显式地开始事务,然后关闭事务,关闭 Session 。而 Hibernate 提供更简单的方式操作持久层,无须显式地打开 Session ,无须在代码中执行任何的事务操作语句。

Hibernate 的简化,还基于 Spring 对异常处理的简化。底层数据库异常几乎都不可恢复,强制处理底层数据库几乎没有任何意义,但传统 JDBC 数据库访问的异常都是 checked 异常,必须使用 try...catch 块处理。

Spring 包装了 Hibernate 异常,转换到 DataAccessException 继承树内,所有 DataAccessException 全部是 runtime 异常,并不强制捕捉。归纳起来, SpringHibernate 的简化主要有如下几个方面:

q      基于依赖注入的 SessionFactory 管理机制。 SessionFactory 是执行持久化操作的核心组件。传统 Hibernate 应用中, SessionFactory 必须手动创建;通过依赖注入,代码无须关心 SessionFactorySessionFactory 的创建,维护由 BeanFactory 负责管理。

q      更优秀的 Session 管理机制。 Spring 提供“每事务一次 Session ”的机制,该机制能大大提高系统性能,而且 SpringSession 的管理是透明的,无须在代码中操作 Session

q      统一的事务管理。无论是编程式事务,还是声明式事务, Spring 都提供一致的编程模型,无须繁琐的开始事务,显式提交、回滚。如果使用声明式事务管理,事务管理逻辑与代码分离,事务可在全局事务和局部事务之间切换。

q      统一的异常处理机制。不再强制开发者在持久层捕捉异常,持久层异常被包装成 DataAccessException 异常的子类,开发者可以自己决定在合适的层处理异常,将底层数据库异常包装成业务异常。

q      HibernateTemplate 支持类。 HibernateTempate 能完成大量 Hibernate 持久层操作,这些操作大多只需一行代码,非常简洁。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值