`

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异常层次是如此的细致缜密,服务对象能够精确地选择需要捕获哪些异常,捕获的异常对用户更有用的信息,哪些异常可以让她继续在调用堆栈中向上传递。
DataAccessException,它是由Spring framework定义的运行时异常。关于DataAccessException,有两件事需要注意。首先,它是运行时异常,所以使用数据访问对象的应用程序代码不需要像在JDBC和EJB 2.x实体bean的情况下那样使用try-catch块包装每次调用。第二,DataAccessException是有用的,因为它包装底层持久化技术所使用的特定异常类,从而使应用程序的其他部分独立于持久化层。

Spring’s DAO frameworks do not throw technology-specific exceptions, such
as SQLException or HibernateException. Instead, all exceptions thrown are
subclasses of the technology-agnostic org.springframework.dao.DataAccess-
Exception. This enables your data access interfaces to throw Spring’s general
DataAccessException instead of implementation-specific exceptions that would
force other application layers to catch them and thus become coupled to a particular
persistence implementation. In fact, you can intermingle multiple persistence
technologies within the same application without your service objects even
knowing it.
Since DataAccessException is the root of all Spring DAO exceptions, there are
a couple of important things to know.
分享到:
评论

相关推荐

    Spring的DataAccessException

    Spring的DataAccessException

    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包。

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

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

    mybatis-3.1.1-bundle

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

    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 ...

    兰州理工大学人力资源管理系统

    public List<Attendance> findAttsBetweenDates(int attendanceState,Date fromTime,Date toTime)throws DataAccessException; /**保存考勤信息 * @param att 考勤信息 * @throws DataAccessException */ ...

    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下的...

    AdminContract

    进口摆渡.eto.DataAccessException; 进口ferry.eto.NoSuchFerryException; 进口ferry.eto.NoSuchHarbourException; 进口ferry.eto.NoSuchRouteException; 进口ferry.eto.NoSuchScheduleException; 进口ferry.eto....

Global site tag (gtag.js) - Google Analytics