`
leng_cn
  • 浏览: 298159 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring的DataAccessException

阅读更多
   Spring的DAO框架没有抛出与特定技术相关的异常,例如SQLException或HibernateException,抛出的异常都是与特定技术无关的org.springframework.dao.DataAccessException类的子类,避免系统与某种特殊的持久层实现耦合在一起。DataAccessException是RuntimeException,是一个无须检测的异常,不要求代码去处理这类异常,遵循了Spring的一般理念:异常检测会使代码到处是不相关的catch或throws语句,使代码杂乱无章;并且NestedRuntimeException的子类,是可以通过NestedRuntimeException的getCause()方法获得导致该异常的另一个异常。Spring的异常分类有
Spring的DAO异常层次

异常

何时抛出

CleanupFailureDataAccessException 一项操作成功地执行,但在释放数据库资源时发生异常(例如,关闭一个Connection)
DataAccessResourceFailureException 数据访问资源彻底失败,例如不能连接数据库
DataIntegrityViolationException Insert或Update数据时违反了完整性,例如违反了惟一性限制
DataRetrievalFailureException 某些数据不能被检测到,例如不能通过关键字找到一条记录
DeadlockLoserDataAccessException 当前的操作因为死锁而失败
IncorrectUpdateSemanticsDataAccessException Update时发生某些没有预料到的情况,例如更改超过预期的记录数。当这个异常被抛出时,执行着的事务不会被回滚
InvalidDataAccessApiusageException 一个数据访问的JAVA API没有正确使用,例如必须在执行前编译好的查询编译失败了
invalidDataAccessResourceUsageException 错误使用数据访问资源,例如用错误的SQL语法访问关系型数据库
OptimisticLockingFailureException 乐观锁的失败。这将由ORM工具或用户的DAO实现抛出
TypemismatchDataAccessException Java类型和数据类型不匹配,例如试图把String类型插入到数据库的数值型字段中
UncategorizedDataAccessException 有错误发生,但无法归类到某一更为具体的异常中
Spring的DAO异常层次是如此的细致缜密,服务对象能够精确地选择需要捕获哪些异常,捕获的异常对用户更有用的信息,哪些异常可以让她继续在调用堆栈中向上传递。
分享到:
评论
2 楼 fangwei 2009-05-15  
1 楼 sunxing007 2008-09-13  

相关推荐

    mybatis-spring-1.2.3

    MyBatis-Spring连接类。... 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 不会依赖于 MyBatis,Spring 或 MyBatis-Spring 来构建应用程序代码。

    Spring+MyBatis

    MyBatis-Spring 会帮助你... 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 不会依赖于 MyBatis,Spring 或 MyBatis-Spring 来构建应用程序代码。

    mybatis-spring-1.2.2.jar

    而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 不会依赖于 MyBatis,Spring 或 MyBatis-Spring 来构建应用程序代码。 正如第二版那样,Spring ...

    mybatis-3.2.5.jar及mybatis-spring-1.2.2.jar

    MyBatis-Spring 会帮助你... 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 不会依赖于 MyBatis,Spring 或 MyBatis-Spring 来构建应用程序代码。

    【Spring整合Mybatis配置及测试代码】

    MyBatis-Spring 会帮助你... 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 不会依赖于 MyBatis,Spring 或 MyBatis-Spring 来构建应用程序代码。

    spring-mybatis

    MyBatis-Spring 会帮助你... 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 不会依赖于 MyBatis,Spring 或 MyBatis-Spring 来构建应用程序代码。

    spring-tx.jar

    The type org.springframework.dao.DataAccessException cannot be resolved. It is indirectly referenced异常缺少的包

    spring in action英文版

     4.1.1 理解Spring的DataAccessException  4.1.2 与DataSource一起工作  4.1.3 一致的DAO支持  4.2 在Spring中使用JDBC  4.2.1 JDBC代码的问题  4.2.2 使用JdbcTemplate  4.2.3 把操作创建成...

    mybatis-spring-1.2.0 源码

    它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。最终,可以做到应用代码不依赖于 MyBatis,...

    spring-tx-4.2.2.RELEASE.jar

    The type org.springframework.dao.DataAccessException cannot be resolved. It is indirectly referenced from required .class files 解决方法: 导入spring-tx-4.2.2.RELEASE.jar包。

    mybatis-3.1.1-bundle

    MyBatis ORM框架 ... 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 不会依赖于 MyBatis,Spring 或 MyBatis-Spring 来构建应用程序代码。

    第24次课-1 Spring与Hibernate的整合

    不再强制开发者在持久层捕捉异常,持久层异常被包装成DataAccessException,底层数据库异常包装成业务异常。开发者可以自己决定在合适的层处理。 HibernateTemplate支持类。可以完成大量Hibernate持久层的操作。 ...

    SPRING API 2.0.CHM

    All Classes ...DataAccessException DataAccessResourceFailureException DataAccessUtils Database DatabaseMetaDataCallback DatabaseStartupValidator DataBinder DataFieldMaxValueIncrementer ...

    doma-spring-boot:Doma的Spring Boot支持

    doma-spring-boot Spring Boot支持属性文件配置doma.dialect = # Dialect of database used by Doma. (STANDARD, SQLITE, DB2, MSSQL, MYSQL, POSTGRES, ORACLE, H2, HSQL)doma.sql-file-repository = # Type of ...

    javascript:void(0);

    import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.RowMapper; import entity.Material; public class MaterialService extends BaseService { /** * 把...

    common-spring-boot-stater:基于SpringBoot的Web开发公共模块

    DataAccessException 500 数据访问错误 1.1.3 Servlet异常处理器 负责处理Servlet产生的异常: 异常类型 响应码 响应文本 DataAccessException 500 数据访问错误 NoHandlerFoundException 404 没有对应的处理器 ...

    北大青鸟学士后第三单元OA办公自动化管理系统

    (3) com.chen.exception.DataAccessException.java 是一个自定义异常,用于用户登入时判断用户名及密码. (4)com.chen.web.interceptor.AuthorizationInterceptor.java 限制上传大小的拦截器 (5) src下的...

Global site tag (gtag.js) - Google Analytics