System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,特别涉及一种数据库的事务控制方法、系统、计算机设备及介质。
技术介绍
1、应用软件的事务是计算机系统中一组必须采用原子性处理的任务,所谓原子性处理的任务为同一时刻只能有一个线程对它进行操作。在原子性处理的任务中,如果其中任何一个任务失败,其他任何成功的任务所做的变更都会回滚,即还原到事务启动前的初始状态。计算机系统中应用软件的事务的实现往往依赖于关系型数据库的事务实现,关系型数据库事务是用户定义的一个数据库操作序列。
2、近年来,oracle数据库的结构化查询语言(structured query language,sql)和mysql数据库的sql虽然都是目前常见的关系型数据库的sql,但是随着开源数据库的广泛应用和发展,越来越多的软件公司将系统的oracle数据库切换为mysql数据库。切换后的mysql数据库在实际场景中,存在一种特殊的应用软件的事务,该事务是需要同时操作oracle数据库和mysql数据库中的数据源,在存在该事务的情况下,由于研发人员在将oracle数据库切换为mysql数据库时未考虑存在同时操作oracle数据库和mysql数据库中的数据源的情况,从而导致该事务不能执行,使应用软件无法响应用户请求,从而降低了用户体验度。
技术实现思路
1、基于此,有必要针对数据库的事务控制风险高以及生产环境的业务稳定性低的问题,提供一种数据库的事务控制方法、系统、计算机设备及介质。
2、一种数据库的事务控制方法,方法包括:接收
3、在其中一个实施例中,方法还包括:当事务类型为本地事务时,在针对mysql数据库构建的应用程序编程接口序列中调用所述本地事务的第三mapper接口;确定并执行第三mapper接口对应的数据处理函数;当第三mapper接口对应的数据处理函数执行成功的情况下,执行提交事务操作;或者,当第三mapper接口对应的数据处理函数执行失败的情况下,执行回滚事务操作。
4、在其中一个实施例中,在执行提交事务操作或者执行回滚事务操作之后,还包括:获取数据处理函数对应的执行结果;将执行结果封装为可响应的可视化数据,并将可视化数据响应至客户端进行展示。
5、在其中一个实施例中,接收针对当前软件系统提交的事务请求之前,还包括:扫描当前软件系统中针对oracle数据库设计的mapper接口;将扫描到的mapper接口转换为适用于mysql数据库的mapper接口,得到mysql数据库对应的应用程序编程接口序列;针对mysql数据库对应的应用程序编程接口序列中每个应用程序编程接口设置数据处理函数,得到mapper接口对应的数据处理函数;其中,数据处理函数包括数据增加操作函数、数据删除操作函数、数据修改操作函数以及数据查询操作函数。
6、在其中一个实施例中,确定事务请求的事务类型,包括:解析事务请求的请求数据,得到解析数据;在解析数据中匹配目标事务标识符;在预先生成的事务标识符与事务类型的映射关系中确定目标事务标识符对应的事务类型,得到事务请求的事务类型。
7、在其中一个实施例中,解析事务请求的请求数据之前,还包括:接收针对客户端输入的事务标识符;获取本地事务和分布式事务的类型标识符;建立事务标识符与类型标识符之间的映射关系,得到预先生成的事务标识符与事务类型的映射关系。
8、在其中一个实施例中,确定并执行第一mapper接口对应的数据处理函数,确定并执行第二mapper接口对应的数据处理函数,包括:获取当前软件系统的源代码;获取第一mapper接口和第二mapper接口各自的接口名称;基于接口名称在当前软件系统的源代码中进行方法名匹配,得到第一mapper接口和第二mapper接口对应的数据处理函数;执行第一mapper接口和第二mapper接口对应的数据处理函数。
9、一种数据库的事务控制系统,系统包括:事务类型确定模块,用于接收针对当前软件系统提交的事务请求,确定事务请求的事务类型;接口调用模块,用于当事务类型为分布式事务时,在针对oracle数据库构建的应用程序编程接口序列中调用所述分布式事务的第一mapper接口,并在针对mysql数据库构建的应用程序编程接口序列中调用所述分布式事务的第二mapper接口;函数确定模块,用于确定并执行第一mapper接口对应的数据处理函数,确定并执行第二mapper接口对应的数据处理函数;事务执行模块,用于在第一mapper接口和第二mapper接口对应的数据处理函数执行成功的情况下,执行提交事务操作;或者,在第一mapper接口或第二mapper接口对应的数据处理函数执行失败的情况下,执行回滚事务操作。
10、一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述数据库的事务控制方法的步骤。
11、一种存储有计算机可读指令的介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述数据库的事务控制方法的步骤。
12、上述数据库的事务控制方法、系统、设备和介质,数据库的事务控制系统首先接收针对当前软件系统提交的事务请求,确定事务请求的事务类型,然后当事务类型为分布式事务时,在针对oracle数据库构建的应用程序编程接口序列中调用所述分布式事务的第一mapper接口,并在针对mysql数据库构建的应用程序编程接口序列中调用所述分布式事务的第二mapper接口,其次确定并执行第一mapper接口对应的数据处理函数,确定并执行第二mapper接口对应的数据处理函数,最后在第一mapper接口和第二mapper接口对应的数据处理函数执行成功的情况下,执行提交事务操作;或者,在第一mapper接口或第二mapper接口对应的数据处理函数执行失败的情况下,执行回滚事务操作。由于本申请预先构建了oracle数据库和mysql数据库的应用程序编程接口序列,在接收到事务类型为分布式事务的事务请求时,可以同时操作oracle数据库和mysql数据库中的数据源,实现了应用软件可以响应用户请求,从而提升了用户体验度,同时提升了系统的面对不同事务类型的情况下均能成功响应,提升了系统的稳定性。
本文档来自技高网...【技术保护点】
1.一种数据库的事务控制方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1或2所述的方法,其特征在于,所述在执行提交事务操作或者执行回滚事务操作之后,还包括:
4.根据权利要求1所述的方法,其特征在于,所述接收针对当前软件系统提交的事务请求之前,还包括:
5.根据权利要求1所述的方法,其特征在于,所述确定所述事务请求的事务类型,包括:
6.根据权利要求5所述的方法,其特征在于,所述解析所述事务请求的请求数据之前,还包括:
7.根据权利要求1所述的方法,其特征在于,所述确定并执行所述第一Mapper接口和第二Mapper接口对应的数据处理函数,包括:
8.一种数据库的事务控制系统,其特征在于,所述系统包括:
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述数据库的事务控制方法的步骤。
1
...【技术特征摘要】
1.一种数据库的事务控制方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1或2所述的方法,其特征在于,所述在执行提交事务操作或者执行回滚事务操作之后,还包括:
4.根据权利要求1所述的方法,其特征在于,所述接收针对当前软件系统提交的事务请求之前,还包括:
5.根据权利要求1所述的方法,其特征在于,所述确定所述事务请求的事务类型,包括:
6.根据权利要求5所述的方法,其特征在于,所述解析所述事务请求的请求数据之前,还包括:
7.根据权利要求1所述的方...
【专利技术属性】
技术研发人员:蒿兴旺,
申请(专利权)人:平安壹钱包电子商务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。