软件开发过程中的事务处理(三)

原创 2007年10月11日 10:20:00
在使用Hibernate时,我们会发现Hibernate在装载一个对象的时候有两个方法可以使用:load和get,而这两个方法的调用方法基本上是一致的,而唯一的区别就是,当Hibernate没有找到对象时,load抛出异常,而get仅仅返回一个null。

为什么Hibernate采用这样的设计呢?在这里笔者也不敢妄加揣测,但是这一设计却可以很好地解决我们在软件开发过程中的事务处理(二) 中遇到的问题,在软件开发过程中的事务处理(二) 我们提到如果DAO方法完全不抛出异常,那么我们就会发现,很可能在service层我们需要不停的编写重复代码,而如果在DAO层抛出异常,我们就会在service层编写写操作时就会出现
catch(***Exception e)...{
    ConnectionPool.rollback(Connection);
    
throw e;
}
这样的代码。

那么我们完全可以向Hibernate一样,为一个方法编写两个实现,在没有发现要返回的对象时,一个方法抛出异常,而另外一个直接返回null。这样一来,我们在service层中只读操作中调用抛出异常的方法;而在写操作中调用返回null的方法,然后在service层中,判断对象是否为null,从而进行相应的操作(要方法回滚,还是继续以下的操作。)

那么我们在DAO层的API设计如下:

dao.getThread(int threadId);
doa.loadThread(int threadId) throws ObjectNotFoundException;

dao.deleteThread(int threadId);



而在service层中,delete,rate等写操作调用dao.getThread方法,而viewThread等只读方法则调用dao.loadThread方法。


版权所有: idilent 网站转载请注明作者并链接到http://blog.csdn.net/idilent,
其他转载方式请与作者联系(idilent@yahoo.com.cn)。

MySQL存储过程 事务transaction

MySQL存储过程 事务transaction
  • xinyuan_java
  • xinyuan_java
  • 2015年11月24日 00:59
  • 2507

VR开发入门:3D图像的处理过程

在进行第一个VR应用开发之前,我们来看看几个重要的概念:   搭建场景:创建一个可视化、可交互、脚本驱动的虚拟现实环境。   立体渲染:用两个相机渲染场景分别表示用户的左右眼,然后通过Oc...
  • lalate
  • lalate
  • 2016年05月25日 15:33
  • 3739

软件概要设计的过程与任务

在完成对软件系统的需求分析之后,接下来需要进行的是软件系统的概要设计。一般说来,对于较大规模的软件项目,软件设计往往被分成两个阶段进行。首先是前期概要设计,用于确定软件系统的基本框架;然后是在概要设计...
  • kevin_hcy
  • kevin_hcy
  • 2013年08月01日 15:50
  • 43690

SQL Server在存储过程中编写事务处理代码的三种方法

SQL Server中数据库事务处理是相当有用的,鉴于很多SQL初学者编写的事务处理代码存往往存在漏洞,本文我们介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码。希望能够对您有所...
  • liujiayu2
  • liujiayu2
  • 2015年08月01日 13:14
  • 334

SQL Server在存储过程中编写事务处理代码的三种方法

SQL Server中数据库事务处理是相当有用的,鉴于很多SQL初学者编写的事务处理代码存往往存在漏洞,本文我们介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码。希望能够对您有所...
  • lyflcear
  • lyflcear
  • 2012年01月09日 17:05
  • 587

SQL Server在存储过程中编写事务处理代码的三种方法

SQL Server中数据库事务处理是相当有用的,鉴于很多SQL初学者编写的事务处理代码存往往存在漏洞,本文我们介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码。希望能够对您有所...
  • ycl295644
  • ycl295644
  • 2015年06月02日 15:06
  • 4885

SQL Server在存储过程中编写事务处理代码的三种方法

原文来自于:SQL Server在存储过程中编写事务处理代码的三种方法SQL Server中数据库事务处理是相当有用的,鉴于很多SQL初学者编写的事务处理代码存往往存在漏洞,本文我们介绍了三种不同的方...
  • lmy86263
  • lmy86263
  • 2016年09月21日 22:21
  • 267

在存储过程中编写正确的事务处理代码(SQL Server 2000 & 2005)

在 SQL Server 中数据库事务处理是个重要的概念,也稍微有些不容易理解,很多 SQL 初学者编写的事务处理代码存往往存在漏洞,本文介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正...
  • yuefengyuan
  • yuefengyuan
  • 2011年11月30日 10:29
  • 1261

在存储过程中编写正确的事务处理代码(SQL Server 2000 & 2005)

在 SQL Server 中数据库事务处理是个重要的概念,也稍微有些不容易理解,很多 SQL 初学者编写的事务处理代码存往往存在漏洞,本文介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正...
  • slindesen
  • slindesen
  • 2011年03月11日 10:29
  • 526

SQL Server在存储过程中编写事务处理代码的方法

2012年高考语文一轮复习资料集锦   SQL Server中数据库事务处理是相当有用的,鉴于很多SQL初学者编写的事务处理代码存往往存在漏洞,本文我们介绍了三种不同的方法,举例说明了如何在存储过程事...
  • mrwu9902
  • mrwu9902
  • 2011年08月19日 10:11
  • 434
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:软件开发过程中的事务处理(三)
举报原因:
原因补充:

(最多只允许输入30个字)