基于MyBatis框架的存储过程调用方法、装置、设备、介质制造方法及图纸

技术编号:34141720 阅读:15 留言:0更新日期:2022-07-14 17:59
本发明专利技术属于人工智能领域,提供了一种基于MyBatis框架的存储过程调用方法、装置、设备、介质,方法包括:从预编译于MyBatis框架的存储过程中确定包括至少一个自定义变量的自定义存储过程;在MyBatis框架的数据库对象表中生成与自定义变量所对应的目标变量,以及与自定义存储过程相同的目标存储过程,并通过目标变量替换自定义变量;将目标存储过程的目标索引信息在调用索引表中替换自定义存储过程的索引信息;根据更新后的MyBatis框架响应存储过程调用指令。根据本实施例的技术方案,使得MyBatis框架能够将对自定义存储过程的调用转换至对目标存储过程的调用,从而确保了数据调用的准确性,有效避免了因自定义变量无法识别而导致的数据调用错误。而导致的数据调用错误。而导致的数据调用错误。

【技术实现步骤摘要】
基于MyBatis框架的存储过程调用方法、装置、设备、介质


[0001]本专利技术属于数据库
,尤其涉及一种基于MyBatis框架的存储过程调用方法、装置、设备、介质。

技术介绍

[0002]存储过程是一组能够完成特定功能的SQL语句集,通常用应用过程化结构化查询语言(Procedural Language Structured Query Language,PLSQL)进行编写。为了利用存储过程实现特定的业务逻辑,可以将多个存储过程组合成一个存储过程包。随着数据库的访问量逐渐增大,业务逻辑的实现从存储过程包转移到了Java上,这就要求在PLSQL语言和Java语言之间进行转换。
[0003]对于第三方提供的存储过程包,出于数据库安全需求或者业务需求不能转换成Java,Java需要通过MyBatis框架对存储过程包中的存储过程进行调用,但是MyBatis框架并不能很好地识别外部存储过程的自定义变量,很容易导致数据调用的出现逻辑错误。

技术实现思路

[0004]以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
[0005]本专利技术实施例提供了一种基于MyBatis框架的存储过程调用方法、装置、设备、介质,能够在MyBatis框架的数据库对象表生成可识别的目标变量和目标存储过程,使得Mybatis框架通过内部的目标存储过程进行数据调用,确保数据调用的准确性。
[0006]第一方面,本专利技术实施例提供了一种基于MyBatis框架的存储过程调用方法,包括:
[0007]从预编译于MyBatis框架的存储过程中确定自定义存储过程,所述自定义存储过程包括至少一个自定义变量;
[0008]获取所述MyBatis框架的数据库对象表和调用索引表,所述数据库对象表用于记载目标数据库中定义的变量和存储过程,所述调用索引表记载有所述MyBatis框架中每个存储过程的索引信息;
[0009]在所述数据库对象表中生成与所述自定义变量所对应的目标变量,将所述自定义变量的参数值确定为所述目标变量的参数值;
[0010]在所述数据库对象表中生成与所述自定义存储过程相同的目标存储过程,通过所述目标变量替换所述目标存储过程中的所述自定义变量;
[0011]获取所述目标存储过程的目标索引信息,在所述调用索引表中将所述自定义存储过程的索引信息替换为所述目标索引信息;
[0012]当获取到存储过程调用指令,根据所述存储过程调用指令和所述MyBatis框架进行存储过程的调用。
[0013]在一些实施例中,所述从预编译于MyBatis框架的存储过程中确定自定义存储过
程,包括:
[0014]获取预编译于所述MyBatis框架的存储过程包,所述存储过程包至少包括两个初始存储过程和至少一个所述自定义变量;
[0015]将应用所述自定义变量的至少一个所述初始存储过程确定为所述自定义存储过程。
[0016]在一些实施例中,所述将应用所述自定义变量的至少一个所述初始存储过程确定为所述自定义存储过程,包括:
[0017]将未记载在所述数据库对象表的所述自定义变量确定为目标自定义变量;
[0018]将应用所述目标自定义变量的至少一个所述初始存储过程确定为所述自定义存储过程。
[0019]在一些实施例中,所述根据所述存储过程调用指令和所述MyBatis框架进行存储过程的调用,包括:
[0020]当所述存储过程调用指令所对应的存储过程为所述目标存储过程,从预设的多个可选解析器中确定与所述目标存储过程所对应的目标解析器;
[0021]通过所述目标存储过程从所述目标数据库获取中间数据;
[0022]根据所述目标解析器对所述中间数据进行数据解析,得到目标数据。
[0023]在一些实施例中,各个所述可选解析器用于解析不同数据排列方式的数据,所述从预设的多个可选解析器中确定与所述目标存储过程所对应的目标解析器,包括:
[0024]确定所述目标存储过程中预先定义好的目标数据结构,所述目标数据结构表征所述目标数据的数据排列方式;
[0025]根据所述目标数据结构多个所述可选解析器中确定所述目标解析器。
[0026]在一些实施例中,所述根据所述目标解析器对所述中间数据进行数据解析,得到目标数据,包括:
[0027]当所述目标数据为输入至所述目标存储过程的数据,确定与所述目标数据结构所对应的预设关键字,通过所述目标解析器根据所述预设关键字从所述中间数据中提取所述目标数据;
[0028]或者,
[0029]当所述目标数据为所述目标存储过程输出的数据,通过所述目标解析器将所述中间数据转换成目标数组,将所述目标数组确定为所述目标数据。
[0030]在一些实施例中,在所述通过所述目标变量替换所述目标存储过程中的所述自定义变量之后,所述方法还包括:
[0031]当所述目标存储过程包括用于输出操作语句,将所述输出操作语句所对应的目标变量确定为目标输出变量;
[0032]将所述目标输出变量在所述自定义存储过程中所对应的所述自定义变量的数据类型确定为目标输出数据类型;
[0033]将所述目标输出数据类型确定为所述目标输出变量的数据类型。
[0034]第二方面,本专利技术实施例提供了一种基于MyBatis框架的存储过程调用装置,包括:
[0035]第一获取单元,用于从预编译于MyBatis框架的存储过程中确定自定义存储过程,
所述自定义存储过程包括至少一个自定义变量;
[0036]第二获取单元,用于获取所述MyBatis框架的数据库对象表和调用索引表,所述数据库对象表用于记载目标数据库中定义的变量和存储过程,所述调用索引表记载有所述MyBatis框架中每个存储过程的索引信息;
[0037]变量生成单元,用于在所述数据库对象表中生成与所述自定义变量所对应的目标变量,将所述自定义变量的参数值确定为所述目标变量的参数值;
[0038]存储过程生成单元,用于在所述数据库对象表中生成与所述自定义存储过程相同的目标存储过程,通过所述目标变量替换所述目标存储过程中的所述自定义变量;
[0039]索引信息替换单元,用于获取所述目标存储过程的目标索引信息,在所述调用索引表中将所述自定义存储过程的索引信息替换为所述目标索引信息;
[0040]存储过程调用单元,用于当获取到存储过程调用指令,根据所述存储过程调用指令和所述MyBatis框架进行存储过程的调用。
[0041]第三方面,本专利技术实施例提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的基于MyBatis框架的存储过程调用方法。
[0042]第四方面,本专利技术实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序用于执行如第一方面所述的基于MyBatis框架的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于MyBatis框架的存储过程调用方法,其特征在于,包括:从预编译于MyBatis框架的存储过程中确定自定义存储过程,所述自定义存储过程包括至少一个自定义变量;获取所述MyBatis框架的数据库对象表和调用索引表,所述数据库对象表用于记载目标数据库中定义的变量和存储过程,所述调用索引表记载有所述MyBatis框架中每个存储过程的索引信息;在所述数据库对象表中生成与所述自定义变量所对应的目标变量,将所述自定义变量的参数值确定为所述目标变量的参数值;在所述数据库对象表中生成与所述自定义存储过程相同的目标存储过程,通过所述目标变量替换所述目标存储过程中的所述自定义变量;获取所述目标存储过程的目标索引信息,在所述调用索引表中将所述自定义存储过程的索引信息替换为所述目标索引信息;当获取到存储过程调用指令,根据所述存储过程调用指令和所述MyBatis框架进行存储过程的调用。2.根据权利要求1所述的一种基于MyBatis框架的存储过程调用方法,其特征在于,所述从预编译于MyBatis框架的存储过程中确定自定义存储过程,包括:获取预编译于所述MyBatis框架的存储过程包,所述存储过程包至少包括两个初始存储过程和至少一个所述自定义变量;将应用所述自定义变量的至少一个所述初始存储过程确定为所述自定义存储过程。3.根据权利要求2所述的一种基于MyBatis框架的存储过程调用方法,其特征在于,所述将应用所述自定义变量的至少一个所述初始存储过程确定为所述自定义存储过程,包括:将未记载在所述数据库对象表的所述自定义变量确定为目标自定义变量;将应用所述目标自定义变量的至少一个所述初始存储过程确定为所述自定义存储过程。4.根据权利要求1所述的一种基于MyBatis框架的存储过程调用方法,其特征在于,所述根据所述存储过程调用指令和所述MyBatis框架进行存储过程的调用,包括:当所述存储过程调用指令所对应的存储过程为所述目标存储过程,从预设的多个可选解析器中确定与所述目标存储过程所对应的目标解析器;通过所述目标存储过程从所述目标数据库获取中间数据;根据所述目标解析器对所述中间数据进行数据解析,得到目标数据。5.根据权利要求4所述的一种基于MyBatis框架的存储过程调用方法,其特征在于,各个所述可选解析器用于解析不同数据排列方式的数据,所述从预设的多个可选解析器中确定与所述目标存储过程所对应的目标解析器,包括:确定所述目标存储过程中预先定义好的目标数据结构,所述目标数据结构表征所述目标数据的数据排列方式;根据所述目标数据结构多个所述可选解析器中确...

【专利技术属性】
技术研发人员:温秋明钟加武
申请(专利权)人:中国平安人寿保险股份有限公司
类型:发明
国别省市:

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

1