Spring Framework 开发参考手册 之九 DAO支持

第 9 章 DAO支持

9.1. 简介

Spring中的DAO(数据访问对象)支持主要的目标是便于以标准的方式使用数据访问技术, 如JDBC,Hibernate或者JDO。它不仅可以让你在这些技术间相当容易的切换, 而且让你在编码的时候不需要考虑捕获各种技术中特定的异常。

9.2. 一致的异常层次

Spring提供了一个简便的把某种技术特定的异常如SQLException 转化为它自身的异常层次中的基类异常DataAccessException的方法。 这些异常包装了原始的异常,所以你不必担心会丢失任何可能造成错误的异常信息。

除了对JDBC异常的包装外,Spring也可以包装Hibernate的异常,把它们从专有的, checked exceptions转化为一系列抽象的runtime exceptions。 同样的情况也适用于JDO的异常。它可以让你处理大多数持久的异常而不需要讨厌的样板式catches/throws代码块和异常声明, 这些异常是不可恢复的,只在一些适当的层出现.你仍然可以在需要的地方捕获并处理这些异常。 象我们上面提到的一样,JDBC的异常(包括不同数据库特定的方言)也可以转化至同样的异常层次, 这意味着你可以在一致的编程模型下使用JDBC执行某些操作。

上述的情况适合于Template版本的ORM存取框架。如果你使用基于拦截器的类, 应用中就必须小心的处理HibernateExceptions和JDOExceptions, 最好选择通过SessionFactoryUtils 中的convertHibernateAccessExceptionconvertJdoAccessException方法代理。 这些方法可以把异常转化为与兼容org.springframework.dao异常层次的异常。 JDOException属于unchecked exception,它们则被简单的抛出,尽管这在异常处理方面牺牲了通用的DAO抽象。

下面的图描述了Spring使用的异常层次:

9.3. 一致的DAO支持抽象类

为了便于以一致的方式使用不同的数据访问技术如JDBC,JDO和Hibernate, Spring提供了一套抽象的DAO类供你继承。这些抽象类提供一些方法来设置数据源, 以及你正在使用的技术中专有的一些配置设定。

Dao支持类:

  • JdbcDaoSupport - JDBC数据访问对象的基类。 需要设置数据源,同时为子类提供JdbcTemplate。

  • HibernateDaoSupport - Hibernate数据访问对象的基类。 需要设置SessionFactory,同时为子类提供HibernateTemplate。可以选择直接通过HibernateTemplate来初始化, 这样就可以重用后者的设置,例如SessionFactory,flush的方式,异常解释器等等。

  • JdoDaoSupport - JDO数据访问对象的基类。 需要设置PersistenceManagerFactory,同时为子类提供JdoTemplate。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值