一种数据库事务处理方法和服务器技术

技术编号:10829214 阅读:126 留言:0更新日期:2014-12-26 18:22
本申请提供了一种数据库事务处理方法和服务器,所述方法包括:服务器接收由客户端发送的一条复合指令,解析出复合指令中的事务执行条件和指示服务器实现处理数据库事务的所有指令,执行解析出的指令,并且根据执行解析出的指令的执行结果和解析出的事务执行条件判断是否成功执行所有指令,如果是,则保存数据库当前数据并向客户端返回事务成功消息,如果否,则进行数据库回滚并向客户端返回事务失败消息。本申请中客户端不需要依次向服务器发送指令,只需发送一条复合指令给服务器就能实现处理数据库事务,减少了客户端和服务器之间的网络交互次数,从而减少了数据库事务的处理时间和其他操作的等待时间,进一步提高了整个服务器的数据处理能力。

【技术实现步骤摘要】
一种数据库事务处理方法和服务器
本申请涉及数据库
,尤其是涉及一种数据库事务处理方法和服务器。
技术介绍
数据库事务指的是一系列具有原子性的数据库操作。原子性是指数据库事务所包 含的一系列数据库操作作为一个整体被执行,即要么全部执行成功,要么全部回滚到未执 行任何操作的初始状态。 在现有技术中,对数据库事务进行处理通常采用如下方式:客户端向服务器依次 发送指示服务器实现处理数据库事务的所有指令,每当发送一条指令之后,都等待服务器 返回的执行结果,如果返回的执行结果表示服务器执行失败,则客户端停止发送其余的指 令,并向服务器发送回滚通知以使得服务器进行数据库回滚;如果返回的执行结果显示服 务器执行成功,则继续发送下一条指令。当所有的指令都被成功发送,并且服务器返回的所 有执行结果均表示服务器执行成功时,客户端向服务器发送保存通知,以使得服务器保存 数据库当前数据。 可见,在现有技术,由客户端执行所有的逻辑判断功能,服务器只负责执行客户端 发送的指令并返回执行结果,因此,客户端需要依次向服务器发送指令,并且每发送一条指 令之后都需要等待服务器返回的执行结果,根据返回的执行结果才能判断下一步需要发送 什么指令。因此,处理数据库事务时会在客户端和服务器之间进行多次网络交互,使得处理 数据库事务的时间较长,并且由于在处理数据库事务时,数据库的账户会被锁定,而锁定后 的账户不能再被其他的操作处理,因此处理数据库事务的时间较长,也会使得其他操作处 于长时间的等待过程,导致整个服务器的数据处理能力较差。
技术实现思路
本申请解决的技术问题在于提供一种数据库事务处理方法和服务器,以减少客户 端和服务器之间的网络交互次数,从而减少处理数据库事务的时间和其他操作的等待时 间,提高整个服务器的数据处理能力。 为此,本申请解决技术问题的技术方案是: 本申请提供了一种数据库事务处理方法,所述方法包括: 服务器,接收由客户端发送的一条复合指令,所述复合指令中将指示服务器实现 处理数据库事务的所有指令进行连接,所述复合指令中还具有事务执行条件; 所述服务器解析出复合指令中的所述事务执行条件和指示服务器实现处理数据 库事务的所有指令; 服务器执行解析出的指令,并且根据执行解析出的指令的执行结果和解析出的所 述事务执行条件判断是否成功执行所有指令,如果是,则保存数据库当前数据并向客户端 返回事务成功消息,如果否,则进行数据库回滚并向客户端返回事务失败消息。 可选的,所述事务执行条件为数目执行条件;所述复合指令通过条件判断形式将 所述所有指令进行连接; 则所述服务器根据执行解析出的指令的执行结果和解析出的事务执行条件判断 是否成功执行所有指令包括 : 服务器判断执行解析出的所有指令的执行结果为执行失败还是执行成功,若为执 行失败,则判定没有成功执行所有指令,若为执行成功,则判断数据库发生改变的记录的条 数是否满足数目执行条件,如果满足,则判定成功执行所有指令,如果不满足,则判定没有 成功执行所有指令。 可选的,所述数目执行条件为大于等于或者等于所述指示服务器实现处理数据库 事务的所有指令的数目之和。 可选的,所述事务执行条件为判断执行条件;所述复合指令通过作为指令之间的 连接符的判断执行条件将所述所有指令进行连接; 则所述服务器根据执行解析出的指令的执行结果和解析出的事务执行条件判断 是否成功执行所有指令包括 : 所述服务器每次执行完解析出的指令,判断本次执行指令的执行结果为执行失败 还是执行成功,若为执行失败,则判定没有成功执行所有指令,若为执行成功,则根据判断 执行条件的个数判断服务器是否已执行所有指令,若是,则判定成功执行所有指令,若否, 则执行解析出的指令中未被执行的指令。 可选的,所述事务执行条件包括数目执行条件和判断执行条件;所述复合指令通 过条件判断形式和作为指令之间的连接符的判断执行条件将所述所有指令进行连接;通过 条件判断形式连接的指令对应数目执行条件; 则所述服务器根据执行解析出的指令的执行结果和解析出的事务执行条件判断 是否成功执行所有指令包括 : 所述服务器每次执行完解析出的指令,判断本次执行指令的执行结果为执行失败 还是执行成功,若为执行失败,则判定没有成功执行所有指令,若为执行成功,则根据判断 执行条件的个数判断服务器是否已执行所有指令,若是,则判定成功执行所有指令,若否, 则执行解析出的指令中未被执行的指令;其中,若所述服务器执行的指令对应数目执行条 件,则在判断执行成功之后,以及根据判断执行条件的个数判断服务器是否已执行所有指 令之前判断服务器本次执行指令后数据库发生改变的记录的条数是否满足数目执行条件, 如果不满足,则判定没有成功执行所有指令,如果满足,则继续执行根据判断执行条件的个 数判断服务器是否已执行所有指令。 可选的,所述数目执行条件为大于等于或者等于所述数目执行条件对应的指令的 数目之和。 可选的,所述向客户端返回事务失败消息时还包括向客户端返回执行失败的指 令。 可选的,所述指令为SQL语言的指令。 本申请还提供了一种服务器,所述服务器用于接收由客户端发送的一条复合指 令;所述复合指令中将指示服务器实现处理数据库事务的所有指令进行连接,所述复合指 令中还具有事务执行条件; 所述服务器还用于解析出复合指令中的所述事务执行条件和指示服务器实现处 理数据库事务的所有指令,执行解析出的指令,并且根据执行解析出的指令的执行结果和 解析出的所述事务执行条件判断是否成功执行所有指令,如果是,则保存数据库当前数据 并向客户端返回事务成功消息,如果否,则进行数据库回滚并向客户端返回事务失败消息。 可选的,所述事务执行条件为数目执行条件;所述复合指令通过条件判断形式将 所述所有指令进行连接; 则所述服务器用于根据执行解析出的指令的执行结果和解析出的事务执行条件 判断是否成功执行所有指令包括: 服务器用于判断执行解析出的所有指令的执行结果为执行失败还是执行成功,若 为执行失败,则判定没有成功执行所有指令,若为执行成功,则判断数据库发生改变的记录 的条数是否满足数目执行条件,如果满足,则判定成功执行所有指令,如果不满足,则判定 没有成功执行所有指令。 可选的,所述数目执行条件为大于等于或者等于所述指示服务器实现处理数据库 事务的所有指令的数目之和。 可选的,所述事务执行条件为判断执行条件;所述复合指令通过作为指令之间的 连接符的判断执行条件将所述所有指令进行连接; 则所述服务器用于根据执行解析出的指令的执行结果和解析出的事务执行条件 判断是否成功执行所有指令包括: 所述服务器用于每次执行完解析出的指令,判断本次执行指令的执行结果为执行 失败还是执行成功,若为执行失败,则判定没有成功执行所有指令,若为执行成功,则根据 判断执行条件的个数判断服务器是否已执行所有指令,若是,则判定成功执行所有指令,若 否,则执行解析出的指令中未被执行的指令。 可选的,所述事务执行条件包括数目执行条件和判断执行条件;所述复合指令通 过条件判断形式和作为指令之间的本文档来自技高网...

【技术保护点】
一种数据库事务处理方法,其特征在于,所述方法包括:服务器,接收由客户端发送的一条复合指令,所述复合指令中将指示服务器实现处理数据库事务的所有指令进行连接,所述复合指令中还具有事务执行条件;所述服务器解析出复合指令中的所述事务执行条件和指示服务器实现处理数据库事务的所有指令;服务器执行解析出的指令,并且根据执行解析出的指令的执行结果和解析出的所述事务执行条件判断是否成功执行所有指令,如果是,则保存数据库当前数据并向客户端返回事务成功消息,如果否,则进行数据库回滚并向客户端返回事务失败消息。

【技术特征摘要】
1. 一种数据库事务处理方法,其特征在于,所述方法包括: 服务器,接收由客户端发送的一条复合指令,所述复合指令中将指示服务器实现处理 数据库事务的所有指令进行连接,所述复合指令中还具有事务执行条件; 所述服务器解析出复合指令中的所述事务执行条件和指示服务器实现处理数据库事 务的所有指令; 服务器执行解析出的指令,并且根据执行解析出的指令的执行结果和解析出的所述事 务执行条件判断是否成功执行所有指令,如果是,则保存数据库当前数据并向客户端返回 事务成功消息,如果否,则进行数据库回滚并向客户端返回事务失败消息。2. 根据权利要求1所述的方法,其特征在于,所述事务执行条件为数目执行条件;所述 复合指令通过条件判断形式将所述所有指令进行连接; 则所述服务器根据执行解析出的指令的执行结果和解析出的事务执行条件判断是否 成功执行所有指令包括: 服务器判断执行解析出的所有指令的执行结果为执行失败还是执行成功,若为执行失 败,则判定没有成功执行所有指令,若为执行成功,则判断数据库发生改变的记录的条数是 否满足数目执行条件,如果满足,则判定成功执行所有指令,如果不满足,则判定没有成功 执行所有指令。3. 根据权利要求2所述的方法,其特征在于,所述数目执行条件为大于等于或者等于 所述指示服务器实现处理数据库事务的所有指令的数目之和。4. 根据权利要求1所述的方法,其特征在于,所述事务执行条件为判断执行条件;所述 复合指令通过作为指令之间的连接符的判断执行条件将所述所有指令进行连接; 则所述服务器根据执行解析出的指令的执行结果和解析出的事务执行条件判断是否 成功执行所有指令包括: 所述服务器每次执行完解析出的指令,判断本次执行指令的执行结果为执行失败还是 执行成功,若为执行失败,则判定没有成功执行所有指令,若为执行成功,则根据判断执行 条件的个数判断服务器是否已执行所有指令,若是,则判定成功执行所有指令,若否,则执 行解析出的指令中未被执行的指令。5. 根据权利要求1所述的方法,其特征在于,所述事务执行条件包括数目执行条件和 判断执行条件;所述复合指令通过条件判断形式和作为指令之间的连接符的判断执行条件 将所述所有指令进行连接;通过条件判断形式连接的指令对应数目执行条件; 则所述服务器根据执行解析出的指令的执行结果和解析出的事务执行条件判断是否 成功执行所有指令包括: 所述服务器每次执行完解析出的指令,判断本次执行指令的执行结果为执行失败还是 执行成功,若为执行失败,则判定没有成功执行所有指令,若为执行成功,则根据判断执行 条件的个数判断服务器是否已执行所有指令,若是,则判定成功执行所有指令,若否,则执 行解析出的指令中未被执行的指令;其中,若所述服务器执行的指令对应数目执行条件,则 在判断执行成功之后,以及根据判断执行条件的个数判断服务器是否已执行所有指令之前 判断服务器本次执行指令后数据库发生改变的记录的条数是否满足数目执行条件,如果不 满足,则判定没有成功执行所有指令,如果满足,则继续执行根据判断执行条件的个数判断 服务器是否已执行所有指令。6. 根据权利要求5所述的方法,其特征在于,所述数目执行条件为大于等于或者等于 所述数目执行条件对应的指令的数目之和。7. 根据权利要求1至6任意一项所述的方法,其特征在于,所述向客户端返回事务失败 消息时还包括向客户端返回执行失败...

【专利技术属性】
技术研发人员:楼方鑫
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1