spring学习笔记3——数据访问哲学

前言(spring异常体系)
    编写过JDBC的朋友应该都知道不捕获SQLException就几乎不能对数据库进行操作,SQLException是数据访问错误的通用异常,也就是说 任何数据访问错误都会出发SQLException,而不是每个可能的错误产生不同的异常。有些持久框架提供了丰富的异常体系,比如Hibernate大约有二十多个不同的异常, 但是Hibernate异常是私有的平台相关的,我们希望把特定持久机制与数据访问层分离开。

spring的平台无关的异常:
    spring的异常体系庞大,几乎对数据库所有可能产生的错误提供了异常,但并没有与任何特定持久方式相关联,这意味着我们可以依靠spring来抛出一致的异常。为了使用spring的数据访问的异常,我们必须使用spring支持的数据访问模板之一。
JDBC的异常Spring的数据访问异常
BatchUpdateException
DataTruncation
SQLException
SQLWarning
CannotAcquireLockException
ConnotSerializeTransactionException
CleanupFailureDataAccessException
ConcurrencyFailureException
DataAccessException
DataAccessResourceFailureException
DataIntegrityViolationException
DataRetrievalFailureException
DeadlockLoserDataAccessException
EmptyResultDataAccessEexception
....more and more


数据访问的模板化:
    Spring把数据访问过程中固定与变化的部分明确的划分为两类:模板和回调。模板管理过程中的固定部分,而回调处理自定义的数据访问代码。
    Spring提供了多个模板,针对不同的持久平台,下面是Spring全部的数据访问模板及用途。
模板类用途
jca.cci.core.CciTemplateJCA CCI连接
jdbc.core.Jdbc.TemplateJDBC连接
jdbc.core.nameparam.NameParameterJdbcTemplate支持明明参数的JDBC连接
dbc.core.simple.SimpleJdbcTemplateJDBC连接,用java 5概念进行了简化
orm.hibernate.HibernateTemplateHibernate 2.x 会话
orm.hibernate3.HibernateTemplateHibernate 3.x 会话
orm.ibatis.SqlMapClientTemplateiBATIS SqlMap 客户
orm.jdo.JdoTemplateJava数据对象实现
orm.JpaTemplateJava存储API实体管理器
orm.toplink.TopLinkTemplateOracle的TopLink

后面会介绍,使用数据访问模板只需要把它配置为spring上下文的Bean,然后把它织入到程序的DAO,或者还可以利用Spring的DAO支持类进一步简化DAO的配置。

使用DAO支持类:
    在以后介绍Spring独特的数据访问支持选项时,我们回看到DAO支持类符合能够方便的访问相应的模板类。在编写自己的DAO实现时,可以从DAO类集成,并且调用模板获取方法来直接访问底层的数据访问模板。Spring不仅提供了多个数据访问模板,也日共了多个DAO支持类,分别对应于每个模板。下表为spring提供的DAO支持类
DAO支持类支持
jca.cci.supportCciDaoSupportJCA CCI连接
jdbc.core.support.JdbcDaoSupportJDBC连接
jdbc.core.namedparam.NameParameterJdbcDaoSupport支持命名参数的JDBC连接
jdbc.core.simple.SimpleJdbcSupportJDBC连接,用JAVA 5概念进行了简化
orm.hibernate.support.HibernateDaoSupportHibernate2.x会话
orm.hibernate3.support.HibernateDaoSupportHibernate3.x会话
orm.ibatis.support.SqlMapClientDaoSupportiBATIS SqlMap客户
orm.jdo.support.JdoDaoSupportJava数据对象实现
orm.jpa.support.JpaDaoSupportJava存储API实体管理器
orm.toplink.support.TopLinkDaoSupportOracle的TopLink


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值