`

DAO模式的异常的处理

阅读更多


  DAO执行的是数据库访问操作,可能抛出底层的SQLException,而底层的通常不应该暴露给客户端,DAO应该负责捕捉这些底层的异常,而不应该把数据库访问殿堂拆散到业务逻辑层,让业务逻辑层处理数据库异常.关于DAO对象的异常处理,通常推荐如下:

1、DAO方法应该抛出有意义的业务逻辑异常.

2、DAO方法不应该抛出java.lang.Exception异常,这一个异常太大了,业务层很难准确地捕捉到这一个异常。

3、DAO不应该抛出数据访问异常,如SQLException。数据库访问异常是底层异常,不应该扩散到业务层,DAO应用封装数据库访问异常,然后抛出封装后的异常。

4、DAO接口中的方法,只抛出业务层期望处理的checked异常。如果业务层没有合适的异常处理,考虑抛出运行时异常。

5、捕捉底层数据库访问异常,然后抛出新的业务层异常。

6、为DAO类编写异常类,用于包装数据库访问异常。
  对于传统的DAO类和基于spring的DAO类,发现基于spring的DAO实现的方法都没有抛出checked异常,而传统的DAO类则抛出了Exception异常。

分享到:
评论

相关推荐

    DAO编程模式

    实现DAO模式能够更加专注于编写数据访问代码.在这篇文章中,Java开发人员Sean C. Sullivan从三个方面讨论DAO编程的结构特征:事务划分,异常处理,日志记录.在最近的18个月,我和一个优秀的软件开发团队一起工作,开发...

    spring4.3.2参考文档(英文)

    Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接...

    java-项目开发实例-图书信息管理系统开发文档及源码.docx

    Dao 类还提供了一些工具方法,用于处理数据库异常和日志记录等。 Service 类是本系统的业务逻辑处理类,负责处理业务逻辑相关的操作,如图书的添加、修改、删除等。 Service 类使用 Dao 类提供的方法来实现业务...

    jdbc操作oracle数据库(增删改查)

    jdbc操作Oracle数据库(增删改查) 在Java中,使用JDBC(Java Database Connectivity)来操作Oracle数据库是一种常见的做法。...使用JDBC连接Oracle数据库,并使用DAO模式来封装数据访问逻辑,可以实现增删改查操作。

    Spring开发指南

    异常处理 国际化支持 WebWork2 & Spring Quick Start WebWork 高级特性 Action 驱动模式 XWork 拦截器体系 输入校验 国际化支持 Webwork2 in Spring Struts in Spring 数据持久层 事务管理 持久层...

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

    DAO模式的使用,降低了系统重构的代价。 方便的事务管理:Spring提供的声明式事务处理可以全面有效地处理事务。 异常包装:Spring能够包装Hibernate的异常,使开发者可以选择恰当的层来处理异常。 24.2 管理...

    用户注册和登录是每个系统的必须存在的一部分,基于Dwr+Struts2+Spring+Hibernate写了一个用户登录注册系统

    1. //如果不用,启动时不会出错,但使用Dwr时,会抛出异常:java.lang.NoClassDefFoundError: antlr/ANTLRException 2. antlr-2.7.2.jar  3. 4. //如果不用此包,在启动时会抛出: nested exception is java.lang...

    六大类系统架构图及其简介.doc

    JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供给商抛出的错误消息。异常层次结构简化了错误处理,并且极降低了需要编写的异常代码数量(例如打开和关闭连接)。 1.5 Spring ...

    java核心技术精讲

    全书内容包括Java简介、Java基础语法、面向对象、异常的捕获及处理、包及访问控制限、Java新特性、多线程、常用类库、JavaIO操作、网络编程、类集框架、Java数据库编程、DAO设计模式、Eclipse开发工具。 【电子版...

    六大类系统架构图及其简介分享.pdf

    * Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。 * Spring ORM:Spring 框架插入了假设干个 ORM 框架,从而提供了 ORM 的对象关系工具,...

    Hutuzhang-master.zip

    涉及到如下内容: 基础内容: ...单例模式,面板类与监听器类松耦合,Entity层设计,DAO层设计,Service层设计 业务常见处理手法: CRUD操作,配置信息,配置信息初始化,报表生成,一对多关系,多对一关系

    Visual C++从初学到精通 吕兵 高清PDF带书签

    《Visual C++从初学到精通》涵盖内容:控制台应用程序、基于对话框的应用程序、单文档应用程序、多文档应用程序、异常处理机制、 Windows应用程序运行机;WinMain()函数、MFC消息映射机制、API文件操作、MFC文件...

    Visual C++从初学到精通 吕兵 源代码+电子教案

    《Visual C++从初学到精通》涵盖内容:控制台应用程序、基于对话框的应用程序、单文档应用程序、多文档应用程序、异常处理机制、 Windows应用程序运行机;WinMain()函数、MFC消息映射机制、API文件操作、MFC文件操作...

    Visual C++ 6.0编程实例详解.part2

    7.6.1 异常处理 7.6.2 新建数据库 7.6.3 打开数据库 7.6.4 关闭数据库 7.6.5 新建表 7.6.6 删除表 7.6.7 打开表 7.6.8 修改表结构 7.6.9 插入记录 7.6,10 删除记录 7.6.11 修改...

    java项目框架

    该代码采用ssh框架模式开发,页面控制跳转交给struts处理,数据库持久化用hibernate实现,事务和Dao、Service的管理交给spring,日志实现采用log4j,代码还包含了异常处理等。可以在此基础上稍作修改,从而在项目中...

    Visual C++ 6.0编程实例详解.part1

    7.6.1 异常处理 7.6.2 新建数据库 7.6.3 打开数据库 7.6.4 关闭数据库 7.6.5 新建表 7.6.6 删除表 7.6.7 打开表 7.6.8 修改表结构 7.6.9 插入记录 7.6,10 删除记录 7.6.11 修改...

    一本糊涂账-基于Swing和JDBC开发的图形界面桌面应用

    本项目是基于Swing和JDBC开发的图形界面...单例模式,面板类与监听器类松耦合,Entity层设计,DAO层设计,Service层设计 业务常见处理手法: CRUD操作,配置信息,配置信息初始化,报表生成,一对多关系,多对一关系

Global site tag (gtag.js) - Google Analytics