[发明专利]一种基于数据库事务处理的业务方法执行方法及装置无效
申请号: | 201110090410.6 | 申请日: | 2011-04-11 |
公开(公告)号: | CN102156735A | 公开(公告)日: | 2011-08-17 |
发明(设计)人: | 唐凌遥 | 申请(专利权)人: | 中国有色矿业集团有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华;赵娟 |
地址: | 100029 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数据库 事务处理 业务 方法 执行 装置 | ||
技术领域
本发明涉及面向对象与数据库交互的技术领域,特别是涉及一种基于数据库事务处理的业务方法执行方法及一种基于数据库事务处理的业务方法执行装置。
背景技术
数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。
具体而言,假如一组处理步骤或者全部发生或者一步也不执行,则称该组处理步骤为一个事务。当所有的步骤像一个操作一样被完整地执行,则称该事务被提交。由于其中的一部分或多步执行失败,导致没有步骤被提交,则事务必须回滚(回到最初的装置状态)。事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。
对于需要进行基于数据库事务处理的业务方法执行应用,通常有数个业务方法进行业务处理。业务处理通常会新建、删除、更新和查询数据,通过事务处理将数据从数据库提取出来,并将业务处理过程中新建、更新或删除的数据存储到数据库中或从数据库中删除。事务处理可以由多种技术来实现,主要包括数据库接口或对象/关系映射技术,如ODBC、OCI、JDBC、Hibernate等。无论采用何种事务处理机制,都需要在业务方法中嵌入相应的事务处理逻辑,这主要带来了两方面问题:
第一,需要在每个业务方法中加入事务处理逻辑及相应的异常处理逻辑,不仅破坏业务方法的逻辑性,也不利于业务方法的调试、维护、升级等工作;
第二,通常情况下,每个业务方法都需要一个事务处理,在业务方法执行业务处理前将事务处理打开,在执行业务处理后将事务处理提交,或在执行业务处理中遇到问题将事务处理回滚,然后关闭事务处理,一个业务方法执行过程实质上就是一个事务处理过程。如果业务方法中没有涉及新建、更新或删除数据业务处理,则不需要提交或者回滚事务处理。而且,当某个业务方法需要执行别的业务方法来完成更加复杂的业务处理时,则需要重新实现业务方法,而不能在原有基础上进行简单的相互执行。
例如,业务方法A先后执行了业务方法B和业务方法C,最外层的业务方法A有一个事务处理Ta,其影响范围涵盖了业务方法A、B和C,业务方法B和C中的事务处理Tb和Tc是多余的,且会带来副作用。例如,当业务处理执行到业务方法C时发生严重错误,则需要回滚所有事务处理,但此时B的事务处理Tb提交并结束了,即使业务方法A和C的事务处理Ta和Tc都不会提交,也无法将业务方法B已经提交的事务处理Tb进行回滚,这严重违背了事务处理的ACID原则,将会造成灾难性的后果。在这种情况下,采用现有技术需要重新实现业务方法A,将业务方法A、B、C的业务处理逻辑纳入到一个事务处理中,去掉业务方法B和C中原有的事务处理。采用这样的操作将会带来很大的工作量,且会产生严重的代码冗余和高耦合度,不利于维护和提高工作效率。而且上述两个问题相互影响,还会进一步加剧应用执行中的问题。
发明内容
本发明所要解决的技术问题是提供一种基于数据库事务处理的业务方法执行方法及装置,以在保证能正常进行事务处理的前提下,完全去掉业务方法中的事务处理相关逻辑,提高应用的逻辑性、可读性和可维护性,并减低应用的耦合度和冗余度,提高数据处理效率。
为了解决上述技术问题,本发明实施例公开了一种基于数据库事务处理的业务方法执行方法,包括:
针对新建的业务对象生成对应的业务对象代理器,当执行所述业务对象的业务方法时,由所述业务对象代理器进行如下处理步骤:
在当前待执行的业务方法为最外层调用的业务方法时,为该业务方法开启事务处理,并清空预置的域对象缓存器;其中,所述业务方法包括变更类业务方法;
执行所述业务方法,并调用预先生成的域对象代理器将所述业务方法中变更的域对象放入对应的域对象缓存器中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国有色矿业集团有限公司,未经中国有色矿业集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110090410.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种内存话单剔重方法
- 下一篇:一种发热功能性针织面料的生产工艺