CN115061689B - 一种存储过程转java代码的框架设计方法及系统 - Google Patents
一种存储过程转java代码的框架设计方法及系统 Download PDFInfo
- Publication number
- CN115061689B CN115061689B CN202210675153.0A CN202210675153A CN115061689B CN 115061689 B CN115061689 B CN 115061689B CN 202210675153 A CN202210675153 A CN 202210675153A CN 115061689 B CN115061689 B CN 115061689B
- Authority
- CN
- China
- Prior art keywords
- code
- matching
- java
- engine
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了一种存储过程转java代码的框架设计方法及系统,包括:步骤1:配置oracle连接信息,选择对应的存储过程;步骤2:基于配置结果以及选择结果,匹配存储过程解析引擎;步骤3:基于存储过程解析引擎将存储过程转换成中间映射语法糖;步骤4:根据中间映射语法糖的映射关系,映射java关键词;步骤5:基于java关键词配置java代码模板引擎;步骤6:将中间映射语法糖填充至java代码模板引擎,生成java文件,并输出。通过将存储过程迁移出来,并进行存储过程转换、映射、配置等操作,来生成java文件,有效的提高系统的稳健性和扩展性。
Description
技术领域
本发明涉及框架设计技术领域,特别涉及一种存储过程转java代码的框架设计方法及系统。
背景技术
目前公司小微系统由于历史建设的原因,存在大量系统是由存储过程实现的。目前系统运行对数据依赖很大,经常出现事故不好排查,且数据库资源难以水平扩展,因此从性能角度考虑,需要将原存储过程优化成java代码实现。除此之外存储过程这种技术不满足公司现有发展的技术路线,并且很难做数据库层面的迁移。除小微系统之外,公司其他系统也存在类似的现象,从公司长远发展角度考虑需要讲存储过程迁移出来,提高系统的健壮性和扩展性。
因此,本发明提出一种存储过程转java代码的框架设计方法及系统。
发明内容
本发明提供一种存储过程转java代码的框架设计方法及系统,用以解决上述提出的技术问题。
本发明提供一种存储过程转java代码的框架设计方法,包括:
步骤1:配置oracle连接信息,选择对应的存储过程;
步骤2:基于配置结果以及选择结果,匹配存储过程解析引擎;
步骤3:基于所述存储过程解析引擎将所述存储过程转换成中间映射语法糖;
步骤4:根据所述中间映射语法糖的映射关系,映射java关键词;
步骤5:基于所述java关键词配置java代码模板引擎;
步骤6:将所述中间映射语法糖填充至java代码模板引擎,生成java文件,并输出。
优选的,生成java文件,并输出之后,还包括:
确定所述java文件的文件属性;
基于属性-调试数据库,调取与所述文件属性相关的基础调试方案;
基于所述基础调试方案对所述java文件进行基础调试,验证所述java文件是否合格;
若合格,将所述java文件进行保留;
否则,基于调试结果,获取待解决问题,并基于所述待解决问题,对所述java文件进行调整,得到新的java文件,并存储。
优选的,配置oracle连接信息,选择对应的存储过程,包括:
获取用户的输入信息,并配置对应的oracle连接信息;
基于后台程序连接至oracle数据库;
选择存储过程的名称,并配置与java相关的类名以及包名信息。
优选的,获取用户的输入信息之后还包括:
对所述输入信息进行有效性校验;
当校验通过时,对所述输入信息进行预处理,提取对应的输入参数以及输出参数,并将所述输入参数定义为输入对象,将所述输出参数定义为出输出对象。
优选的,步骤3:基于所述存储过程解析引擎将所述存储过程转换成中间映射语法糖,包括:
基于所述存储过程解析引擎,对所述存储过程进行拆分,提取第一关键词;
按照每个第一关键词的关键类型,确定对应的封装方式并进行封装;
基于封装结果,提取关键字,并根据预设映射表,将所述关键字映射成为不同的语法中间层,进而转换为中间映射语法糖。
优选的,基于配置结果以及选择结果,匹配存储过程解析引擎,包括:
对所述配置结果进行第一解析,获取得到第一目标数据;
对所述选择结果进行第二解析,获取得到第二目标数据;
提取所述第一目标数据的第一关键数据以及第二目标数据中的第二关键数据,并判断所述第一关键数据与第二关键数据是否可以完全匹配;
若可以,根据完全匹配结果,依次获取第一匹配对,并按照每个匹配对的匹配因子以及匹配属性,构建对应的第一匹配序列,并按照所述第一匹配序列,匹配得到存储过程解析引擎;
若不可以,获取可匹配的第二匹配对以及第一关键数据中的第一剩余匹配数据、第二关键数据中的第二剩余匹配数据;
对所述第一剩余匹配数据进行格式转换,得到第一码;
对所述第二剩余匹配数据进行格式转换,得到第二码;
从历史记录数据库中,调取在匹配存储过程解析引擎中的通用特征以及关键特征;
按照所述通用特征,从所述第一码中筛选第三码以及从所述第二码中筛选第四码,并按照所述第三码以及第四码的码权重,分配对应的第一序列位置;
按照所述关键特征,从所述第一码中筛选第五码以及从所述第二码中筛选第六码,并按照所述五码以及第六码的码权重,分配对应的第二序列位置;
基于所述第二匹配对的对关系,向所述第二匹配对分配对应的第三序列位置;
确定所述第一序列位置、第二序列位置以及第三序列位置中是否存在重叠位置;
若存在,确定所述重叠位置对应的不同数据的数据权重,若所述数据权重都大于预设权重,在所述重叠位置插接新位置,并将重叠位置的不同数据分开放置,并获取组序列;
若只存在所述数据权重小于预设权重的情况,此时,基于所述重叠位置随机保留一组数据,得到单序列,并在所有序列位置末尾建立新的存放位置,将同个重叠位置上的剩余数据进行放置;
基于所有组序列以及单序列构建得到第二匹配序列,同时,将所述新的存放位置上的数据进行构建,得到辅助匹配序列;
基于所述第二匹配序列,匹配得到第一解析引擎;
基于所述第二匹配序列以及辅助匹配序列,匹配得到第二解析引擎;
判断所述第一解析引擎与第二解析引擎是否为一个;
若是,将所述第二解析引擎视为存储过程解析引擎;
否则,对所述第一解析引擎以及第二解析引擎的解析性能进行判断,并将解析性能优的解析引擎视为存储过程解析引擎。
优选的,将所述中间映射语法糖填充至java代码模板引擎,生成java文件,包括:
获取所述中间映射语法糖的中间层以及每个中间层的映射语法,同时,获取所述java代码模板引擎中若干模板块;
按照中间层的层属性与模板块的块属性进行第一匹配,同时,按照所述映射语法的语法属性与模板块的块属性进行第二匹配;
基于第一匹配结果以及第二匹配结果,确定对所述java代码模板引擎的待完善填充区域;
确定所述待完善填充区域的运行场景,并根据所述运行场景的场景指标,对所述待完善调整区域进行填充;
基于填充结果,确定所述java代码模板引擎的工作线程,并确定所述工作线程中每个工作节点的工作场景以及每个工作场景的场景触发代码;
确定所述场景触发代码的代码位置,并基于所述代码位置,对所述场景触发代码按照执行顺序进行编号,并获取相邻编号的场景触发代码的衔接关系以及对应工作场景的工作执行时长;
确定填充后的引擎的工作合理性H;
b1+b2=1
其中,n-1表示对代码位置编号;表示第i个编号对应场景触发代码的代码权重;表示第i-1个编号对应场景触发代码的代码权重;/>表示第i+1个编号对应场景触发代码的代码权重;yi,i+1表示相邻编号i与i+1对应的场景触发代码的衔接关系;yi,i-1表示相邻编号i与i-1对应的场景触发代码的衔接关系;ti表示第i个编号对应场景触发代码的工作执行时长;ti-1表示第i-1个编号对应场景触发代码的工作执行时长;ti+1表示第i+1个编号对应场景触发代码的工作执行时长;b1与b2表示常数;
当工作合理性H满足预设范围时,按照填充后的引擎进行java文件的生成;
否则,获取不合理范围以及获取每个工作节点的节点属性,并基于所述节点属性以及不合理范围,从属性扩充数据库中,获取待扩充节点;
基于所述待扩充节点对所述工作线程进行扩充,得到合格的引擎,并进行java文件的生成。
优选的,按照每个第一关键词的关键类型,确定对应的封装方式并进行封装,包括:
确定第一关键词的关键类型,并按照所述关键类型确定初步封装方式;
确定第一关键词的字个数以及每个词的词符号,进而确定对应第一关键词的关键程度;
当所述关键程度大于预设程度时,获取所述第一关键词的首词以及末词,同时,还从所述第一关键词的中间词中随机筛选n1个词;
基于首词、末词以及n1个词,随机组合生成序列码;
基于首词、末词以及n1个词中的任一词,生成加密码,基于所述加密码对所述初步封装方式进行调整,得到二次封装方式;
按照所述二次封装方式,对对应第一关键词进行封装,并将所述序列码发送到解密端,在提取所述第一关键词的封装结果的关键字之前进行解密;
当所述关键程度不大于预设程度时,按照所述初步封装方式,对所述第一关键词进行封装。
本发明提供一种存储过程转java代码的框架设计系统,包括:
web控制台,用于配置oracle连接信息,选择对应的存储过程;
引擎匹配模块,用于基于配置结果以及选择结果,匹配存储过程解析引擎;
过程转换模块,用于基于所述存储过程解析引擎将所述存储过程转换成中间映射语法糖;
映射模块,用于根据所述中间映射语法糖的映射关系,映射java关键词;
引擎配置模块,用于基于所述java关键词配置java代码模板引擎;
文件生成模块,用于将所述中间映射语法糖填充至java代码模板引擎,生成java文件,并输出。
与现有技术相比,本申请的有益效果如下:
1、通过将存储过程迁移出来,并进行存储过程转换、映射、配置等操作,来生成java文件,有效的提高系统的稳健性和扩展性。
2、通过对两种结果进行解析,来确定匹配对,进而通过是否完全匹配的判断,便于合理的得到引擎,其中,当不完全匹配时,通过获取匹配对以及独立的数据,通过进行格式转换以及码筛选,便于得到对应的序列位置,且还通过对关系,进一步获取对应的序列位置,进而通过进行重叠位置的判断,来获取完整的序列以及辅助序列,且通过进行引擎个数的判断,便于获取性能最优的引擎,便于保证存储过程的准确解析,保证系统的稳健性。
3、通过第一匹配以及第二匹配,便于实现对引擎的初步填充,通过按照工作线程以及不同的工作场景、场景触发代码,可以实现对引擎的工作合理性的计算,且通过与预设范围进行比较,来确定待扩充节点,实现对引擎再次填充,保证java文件生成的可靠性,进一步提高系统的稳健性。
4、通过确定初步封装方式以及对第一关键词的首词、末词以及任一词进行加密,便于升级优化封装方式,保证对第一关键词的安全保护,间接提高系统的稳健性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种存储过程转java代码的框架设计方法的流程图;
图2为本发明实施例中一种存储过程转java代码的框架设计系统的结构图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1:
本发明提供一种存储过程转java代码的框架设计方法,如图1所示,包括:
步骤1:配置oracle连接信息,选择对应的存储过程;
步骤2:基于配置结果以及选择结果,匹配存储过程解析引擎;
步骤3:基于所述存储过程解析引擎将所述存储过程转换成中间映射语法糖;
步骤4:根据所述中间映射语法糖的映射关系,映射java关键词;
步骤5:基于所述java关键词配置java代码模板引擎;
步骤6:将所述中间映射语法糖填充至java代码模板引擎,生成java文件,并输出。
该实施例中,针对框架的设计主要由三部分组成,一部分是oracle存储过程的解析,一部分是存储过程与java语言的语法映射,一部分是java代码的生成。
该实施例中,常见的存储过程语法体如下:
过程过程结构:create or replace procedure存储过程名称(输入输出参数)IS变量定义位置BEGIN代码END存储过程
变量声明:char、nchar、varchar、varchar2、number、integer、binary_float、binary_double、float、date、timestamp、long
循环等结构:IF Elsif
游标结构:open cur for
事务结构:execute commit rollback
上述技术方案的有益效果是:通过将存储过程迁移出来,并进行存储过程转换、映射、配置等操作,来生成java文件,有效的提高系统的稳健性和扩展性。
实施例2:
基于实施例1的基础上,生成java文件,并输出之后,还包括:
确定所述java文件的文件属性;
基于属性-调试数据库,调取与所述文件属性相关的基础调试方案;
基于所述基础调试方案对所述java文件进行基础调试,验证所述java文件是否合格;
若合格,将所述java文件进行保留;
否则,基于调试结果,获取待解决问题,并基于所述待解决问题,对所述java文件进行调整,得到新的java文件,并存储。
该实施例中,文件属性主要是为了确定java文件所属的类型,基础调试,一般是对代码文件的基础运行,看是否运行行的通,如果行的通也就是合格的话,则保留,否则,一般在调试的过程中会自动显示出存在的问题以及代码出现问题的位置,所以可以针对该情况进行代码调整,得到新的java文件。
上述技术方案的有益效果是:通过对java文件进行基础调试以及验证,来确定是否合格,且通过对问题进行解决,可以有效的获取合格的文件,保证存储过程迁移的成功性,进一步提高系统的稳健性以及扩展性。
实施例3:
基于实施例1的基础上,配置oracle连接信息,选择对应的存储过程,包括:
获取用户的输入信息,并配置对应的oracle连接信息;
基于后台程序连接至oracle数据库;
选择存储过程的名称,并配置与java相关的类名以及包名信息。
上述技术方案的有益效果是:通过进行信息配置以及对存储过程的名称的配置,便于获取java相关信息,为后续配置java关键词提供基础。
实施例4:
基于实施例3的基础上,获取用户的输入信息之后还包括:
对所述输入信息进行有效性校验;
当校验通过时,对所述输入信息进行预处理,提取对应的输入参数以及输出参数,并将所述输入参数定义为输入对象,将所述输出参数定义为出输出对象。
上述技术方案的有益效果是:通过对输入信息进行校验,可以保证信息的有效性,为后续进行信息配置提供基础,间接提高系统的稳健性。
实施例5:
基于实施例1的基础上,步骤3:基于所述存储过程解析引擎将所述存储过程转换成中间映射语法糖,包括:
基于所述存储过程解析引擎,对所述存储过程进行拆分,提取第一关键词;
按照每个第一关键词的关键类型,确定对应的封装方式并进行封装;
基于封装结果,提取关键字,并根据预设映射表,将所述关键字映射成为不同的语法中间层,进而转换为中间映射语法糖。
上述技术方案的有益效果是:通过对存储过程继续凝成还分,便于得到关键词,方便一一封装映射,便于有效映射,进而方便得到中间映射语法糖,为后续系统的稳健性进一步提供基础。
实施例6:
基于实施例1的基础上,基于配置结果以及选择结果,匹配存储过程解析引擎,包括:
对所述配置结果进行第一解析,获取得到第一目标数据;
对所述选择结果进行第二解析,获取得到第二目标数据;
提取所述第一目标数据的第一关键数据以及第二目标数据中的第二关键数据,并判断所述第一关键数据与第二关键数据是否可以完全匹配;
若可以,根据完全匹配结果,依次获取第一匹配对,并按照每个匹配对的匹配因子以及匹配属性,构建对应的第一匹配序列,并按照所述第一匹配序列,匹配得到存储过程解析引擎;
若不可以,获取可匹配的第二匹配对以及第一关键数据中的第一剩余匹配数据、第二关键数据中的第二剩余匹配数据;
对所述第一剩余匹配数据进行格式转换,得到第一码;
对所述第二剩余匹配数据进行格式转换,得到第二码;
从历史记录数据库中,调取历史匹配存储过程解析引擎中的通用特征以及关键特征;
按照所述通用特征,从所述第一码中筛选第三码以及从所述第二码中筛选第四码,并按照所述第三码以及第四码的码权重,分配对应的第一序列位置;
按照所述关键特征,从所述第一码中筛选第五码以及从所述第二码中筛选第六码,并按照所述五码以及第六码的码权重,分配对应的第二序列位置;
基于所述第二匹配对的对关系,向所述第二匹配对分配对应的第三序列位置;
确定所述第一序列位置、第二序列位置以及第三序列位置中是否存在重叠位置;
若存在,确定所述重叠位置对应的不同数据的数据权重,若所述数据权重都大于预设权重,在所述重叠位置插接新位置,并将重叠位置的不同数据分开放置,并获取组序列;
若只存在所述数据权重小于预设权重的情况,此时,基于所述重叠位置随机保留一组数据,得到单序列,并在所有序列位置末尾建立新的存放位置,将同个重叠位置上的剩余数据进行放置;
基于所有组序列以及单序列构建得到第二匹配序列,同时,将所述新的存放位置上的数据进行构建,得到辅助匹配序列;
基于所述第二匹配序列,匹配得到第一解析引擎;
基于所述第二匹配序列以及辅助匹配序列,匹配得到第二解析引擎;
判断所述第一解析引擎与第二解析引擎是否为一个;
若是,将所述第二解析引擎视为存储过程解析引擎;
否则,对所述第一解析引擎以及第二解析引擎的解析性能进行判断,并将解析性能优的解析引擎视为存储过程解析引擎。
该实施例中,第一目标数据与oracle数据类型有关以及与对应的连接数据有关,第二目标数据与选择的存储过程有关。
该实施例中,由于每个目标数据中都会存在关键的数据,因此,提取第一关键数据以及第二关键数据。
该实施例中,完全匹配指的是两种不同结果所对应的关键数据是否匹配,进而方便后续对存储过程解析引擎的有效获取。
该实施例中,比如:第一关键数据为1、2,第二关键数据为3、4,此时,1与3匹配,2与4匹配,此时,1与3、2与4,视为匹配对。
该实施例中,每个匹配对都尤其存在的匹配因子,比如是大于预设匹配值的实际匹配值,只有大于预设匹配值,才能视为匹配,取值范围为0.6—1,匹配属性与两者的匹配类型有关,进而可以构建得到每个匹配对的序列,进而得到第一匹配序列,也就是所有匹配对的序列。
该实施例中,第二匹配对与第一匹配对的原理类似,此处不再赘述。
该实施例中,比如存在只存在1与3匹配,此时1与3为第二匹配对,2为第一剩余匹配数据,4为第二剩余匹配数据,将对应的数据进行格式转换,是为了更好的进行后续的特征分析。
该实施例中,历史记录数据库中是包含若干存储过程解析引擎的通用与关键特征在内的,因此,通过通用特征以及关键特征,来筛选不同的码,其中,第三码以及第五码是第一码中的,第四码以及第六码是第二码中的。
该实施例中,根据码权重来分配对应的序列位置,便于获取得到匹配序列。
该实施例中,对关系也就是指的1与3的关系。
该实施例中,重叠位置指的比如:该位置上存在第一序列1以及第二序列2,此时就是为重叠位置。
该实施例中,插接位置就是该重叠位置上接入新的位置,来进行数据的放置。
该实施例中,由于位置上是放置的数据,所以根据数据权重判断,但是位置是由码权重确定的。
该实施例中,通过对数据进行位置插接、新建,可以有效的将数据放置到合适位置上,方便得到解析引擎。
该实施例中,建立辅助匹配序列的目的就是为了对匹配引擎的性能进行判断,便于获取最后性能的引擎。
该实施例中,组序列指的是由该重叠位置存在几个重叠数据构成的序列。
上述技术方案的有益效果是:通过对两种结果进行解析,来确定匹配对,进而通过是否完全匹配的判断,便于合理的得到引擎,其中,当不完全匹配时,通过获取匹配对以及独立的数据,通过进行格式转换以及码筛选,便于得到对应的序列位置,且还通过对关系,进一步获取对应的序列位置,进而通过进行重叠位置的判断,来获取完整的序列以及辅助序列,且通过进行引擎个数的判断,便于获取性能最优的引擎,便于保证存储过程的准确解析,保证系统的稳健性。
实施例7:
基于实施例1的基础上,将所述中间映射语法糖填充至java代码模板引擎,生成java文件,包括:
获取所述中间映射语法糖的中间层以及每个中间层的映射语法,同时,获取所述java代码模板引擎中若干模板块;
按照中间层的层属性与模板块的块属性进行第一匹配,同时,按照所述映射语法的语法属性与模板块的块属性进行第二匹配;
基于第一匹配结果以及第二匹配结果,确定对所述java代码模板引擎的待完善填充区域;
确定所述待完善填充区域的运行场景,并根据所述运行场景的场景指标,对所述待完善调整区域进行填充;
基于填充结果,确定所述java代码模板引擎的工作线程,并确定所述工作线程中每个工作节点的工作场景以及每个工作场景的场景触发代码;
确定所述场景触发代码的代码位置,并基于所述代码位置,对所述场景触发代码按照执行顺序进行编号,并获取相邻编号的场景触发代码的衔接关系以及对应工作场景的工作执行时长;
确定填充后的引擎的工作合理性H;
b1+b2=1
其中,n-1表示对代码位置编号;表示第i个编号对应场景触发代码的代码权重;表示第i-1个编号对应场景触发代码的代码权重;/>表示第i+1个编号对应场景触发代码的代码权重;yi,i+1表示相邻编号i与i+1对应的场景触发代码的衔接关系;yi,i-1表示相邻编号i与i-1对应的场景触发代码的衔接关系;ti表示第i个编号对应场景触发代码的工作执行时长;ti-1表示第i-1个编号对应场景触发代码的工作执行时长;ti+1表示第i+1个编号对应场景触发代码的工作执行时长;b1与b2表示常数;
当工作合理性H满足预设范围时,按照填充后的引擎进行java文件的生成;
否则,获取不合理范围以及获取每个工作节点的节点属性,并基于所述节点属性以及不合理范围,从属性扩充数据库中,获取待扩充节点;
基于所述待扩充节点对所述工作线程进行扩充,得到合格的引擎,并进行java文件的生成。
该实施例中,第一匹配是实现的层属性与块属性的匹配,第二匹配是实现的语法属性与块属性的匹配,可以初步实现对java代码模块引擎的填充。
该实施例中,待完善填充区域指的是需要进行场景渲染以及场景衔接的区域,以此保证java代码模板引擎的完整性。
该实施例中,运行场景比如是框架上某部分的需要完善,以此,获取该部分的待完善指标,也就是场景指标,实现填充。
该实施例中,工作线程指的是在填充之后,该引擎的线程,进而通过顺序编号以及衔接关系、工作执行时长的确定,来计算工作合理性。
该实施例中,不合理范围指的是预设范围与H的差值范围。
该实施例中,属性扩充数据库中包含节点属性以及不合理范围在内,以及还包括待扩充的节点。
上述技术方案的有益效果是:通过第一匹配以及第二匹配,便于实现对引擎的初步填充,通过按照工作线程以及不同的工作场景、场景触发代码,可以实现对引擎的工作合理性的计算,且通过与预设范围进行比较,来确定待扩充节点,实现对引擎再次填充,保证java文件生成的可靠性,进一步提高系统的稳健性。
实施例8:
基于实施例5的基础上,按照每个第一关键词的关键类型,确定对应的封装方式并进行封装,包括:
确定第一关键词的关键类型,并按照所述关键类型确定初步封装方式;
确定第一关键词的词个数以及每个词的词符号,进而确定对应第一关键词的关键程度;
当所述关键程度大于预设程度时,获取所述第一关键词的首词以及末词,同时,还从所述第一关键词的中间词中随机筛选n1个词;
基于首词、末词以及n1个词,随机组合生成序列码;
基于首词、末词以及n1个词中的任一词,生成加密码,基于所述加密码对所述初步封装方式进行调整,得到二次封装方式;
按照所述二次封装方式,对对应第一关键词进行封装,并将所述序列码发送到解密端,在提取所述第一关键词的封装结果的关键字之前进行解密;
当所述关键程度不大于预设程度时,按照所述初步封装方式,对所述第一关键词进行封装。
该实施例中,初步封装方式的确定是基于类型-封装方式数据库中通过匹配关键类型来得到的。
该实施例中,通过按照词个数以及词符号,便于得到关键程度,比如个数越多,对应的符号越复杂,对应的就越关键。
该实施例中,通过进行首词、末词以及随机词的随机组合,来生成序列码,以及通过首词、末词以及任一词,来生成加密码,可以保证第一关键词的安全性。
上述技术方案的有益效果是:通过确定初步封装方式以及对第一关键词的首词、末词以及任一词进行加密,便于升级优化封装方式,保证对第一关键词的安全保护,间接提高系统的稳健性。
实施例9:
本发明提供一种存储过程转java代码的框架设计系统,如图2所示,包括:
web控制台,用于配置oracle连接信息,选择对应的存储过程;
引擎匹配模块,用于基于配置结果以及选择结果,匹配存储过程解析引擎;
过程转换模块,用于基于所述存储过程解析引擎将所述存储过程转换成中间映射语法糖;
映射模块,用于根据所述中间映射语法糖的映射关系,映射java关键词;
引擎配置模块,用于基于所述java关键词配置java代码模板引擎;
文件生成模块,用于将所述中间映射语法糖填充至java代码模板引擎,生成java文件,并输出。
上述技术方案的有益效果是:通过将存储过程迁移出来,并进行存储过程转换、映射、配置等操作,来生成java文件,有效的提高系统的稳健性和扩展性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种存储过程转java代码的框架设计方法,其特征在于,包括:
步骤1:配置oracle连接信息,选择对应的存储过程;
步骤2:基于配置结果以及选择结果,匹配存储过程解析引擎;
步骤3:基于所述存储过程解析引擎将所述存储过程转换成中间映射语法糖;
步骤4:根据所述中间映射语法糖的映射关系,映射java关键词;
步骤5:基于所述java关键词配置java代码模板引擎;
步骤6:将所述中间映射语法糖填充至java代码模板引擎,生成java文件,并输出;
其中,基于配置结果以及选择结果,匹配存储过程解析引擎,包括:
对所述配置结果进行第一解析,获取得到第一目标数据;
对所述选择结果进行第二解析,获取得到第二目标数据;
提取所述第一目标数据的第一关键数据以及第二目标数据中的第二关键数据,并判断所述第一关键数据与第二关键数据是否可以完全匹配;
若可以,根据完全匹配结果,依次获取第一匹配对,并按照每个匹配对的匹配因子以及匹配属性,构建对应的第一匹配序列,并按照所述第一匹配序列,匹配得到存储过程解析引擎;
若不可以,获取可匹配的第二匹配对以及第一关键数据中的第一剩余匹配数据、第二关键数据中的第二剩余匹配数据;
对所述第一剩余匹配数据进行格式转换,得到第一码;
对所述第二剩余匹配数据进行格式转换,得到第二码;
从历史记录数据库中,调取在匹配存储过程解析引擎中的通用特征以及关键特征;
按照所述通用特征,从所述第一码中筛选第三码以及从所述第二码中筛选第四码,并按照所述第三码以及第四码的码权重,分配对应的第一序列位置;
按照所述关键特征,从所述第一码中筛选第五码以及从所述第二码中筛选第六码,并按照所述五码以及第六码的码权重,分配对应的第二序列位置;
基于所述第二匹配对的对关系,向所述第二匹配对分配对应的第三序列位置;
确定所述第一序列位置、第二序列位置以及第三序列位置中是否存在重叠位置;
若存在,确定所述重叠位置对应的不同数据的数据权重,若所述数据权重都大于预设权重,在所述重叠位置插接新位置,并将重叠位置的不同数据分开放置,并获取组序列;
若只存在所述数据权重小于预设权重的情况,此时,基于所述重叠位置随机保留一组数据,得到单序列,并在所有序列位置末尾建立新的存放位置,将同个重叠位置上的剩余数据进行放置;
基于所有组序列以及单序列构建得到第二匹配序列,同时,将所述新的存放位置上的数据进行构建,得到辅助匹配序列;
基于所述第二匹配序列,匹配得到第一解析引擎;
基于所述第二匹配序列以及辅助匹配序列,匹配得到第二解析引擎;
判断所述第一解析引擎与第二解析引擎是否为一个;
若是,将所述第二解析引擎视为存储过程解析引擎;
否则,对所述第一解析引擎以及第二解析引擎的解析性能进行判断,并将解析性能优的解析引擎视为存储过程解析引擎;
其中,将所述中间映射语法糖填充至java代码模板引擎,生成java文件,包括:
获取所述中间映射语法糖的中间层以及每个中间层的映射语法,同时,获取所述java代码模板引擎中若干模板块;
按照中间层的层属性与模板块的块属性进行第一匹配,同时,按照所述映射语法的语法属性与模板块的块属性进行第二匹配;
基于第一匹配结果以及第二匹配结果,确定对所述java代码模板引擎的待完善填充区域;
确定所述待完善填充区域的运行场景,并根据所述运行场景的场景指标,对所述待完善填充区域进行填充;
基于填充结果,确定所述java代码模板引擎的工作线程,并确定所述工作线程中每个工作节点的工作场景以及每个工作场景的场景触发代码;
确定所述场景触发代码的代码位置,并基于所述代码位置,对所述场景触发代码按照执行顺序进行编号,并获取相邻编号的场景触发代码的衔接关系以及对应工作场景的工作执行时长;
确定填充后的引擎的工作合理性H;
其中,n-1表示对代码位置编号;表示第i个编号对应场景触发代码的代码权重;/>表示第i-1个编号对应场景触发代码的代码权重;/>表示第i+1个编号对应场景触发代码的代码权重;/>表示相邻编号i与i+1对应的场景触发代码的衔接关系;/>表示相邻编号i与i-1对应的场景触发代码的衔接关系;/>表示第i个编号对应场景触发代码的工作执行时长;/>表示第i-1个编号对应场景触发代码的工作执行时长;/>表示第i+1个编号对应场景触发代码的工作执行时长;b1与b2表示常数;
当工作合理性H满足预设范围时,按照填充后的引擎进行java文件的生成;
否则,获取不合理范围以及获取每个工作节点的节点属性,并基于所述节点属性以及不合理范围,从属性扩充数据库中,获取待扩充节点;
基于所述待扩充节点对所述工作线程进行扩充,得到合格的引擎,并进行java文件的生成。
2.如权利要求1所述的存储过程转java代码的框架设计方法,其特征在于,生成java文件,并输出之后,还包括:
确定所述java文件的文件属性;
基于属性-调试数据库,调取与所述文件属性相关的基础调试方案;
基于所述基础调试方案对所述java文件进行基础调试,验证所述java文件是否合格;
若合格,将所述java文件进行保留;
否则,基于调试结果,获取待解决问题,并基于所述待解决问题,对所述java文件进行调整,得到新的java文件,并存储。
3.如权利要求1所述的存储过程转java代码的框架设计方法,其特征在于,配置oracle连接信息,选择对应的存储过程,包括:
获取用户的输入信息,并配置对应的oracle连接信息;
基于后台程序连接至oracle数据库;
选择存储过程的名称,并配置与java相关的类名以及包名信息。
4.如权利要求3所述的存储过程转java代码的框架设计方法,其特征在于,获取用户的输入信息之后还包括:
对所述输入信息进行有效性校验;
当校验通过时,对所述输入信息进行预处理,提取对应的输入参数以及输出参数,并将所述输入参数定义为输入对象,将所述输出参数定义为出输出对象。
5.如权利要求1所述的存储过程转java代码的框架设计方法,其特征在于,步骤3:基于所述存储过程解析引擎将所述存储过程转换成中间映射语法糖,包括:
基于所述存储过程解析引擎,对所述存储过程进行拆分,提取第一关键词;
按照每个第一关键词的关键类型,确定对应的封装方式并进行封装;
基于封装结果,提取关键字,并根据预设映射表,将所述关键字映射成为不同的语法中间层,进而转换为中间映射语法糖。
6.如权利要求5所述的存储过程转java代码的框架设计方法,其特征在于,按照每个第一关键词的关键类型,确定对应的封装方式并进行封装,包括:
确定第一关键词的关键类型,并按照所述关键类型确定初步封装方式;
确定第一关键词的字个数以及每个词的词符号,进而确定对应第一关键词的关键程度;
当所述关键程度大于预设程度时,获取所述第一关键词的首词以及末词,同时,还从所述第一关键词的中间词中随机筛选n1个词;
基于首词、末词以及n1个词,随机组合生成序列码;
基于首词、末词以及n1个词中的任一词,生成加密码,基于所述加密码对所述初步封装方式进行调整,得到二次封装方式;
按照所述二次封装方式,对对应第一关键词进行封装,并将所述序列码发送到解密端,在提取所述第一关键词的封装结果的关键字之前进行解密;
当所述关键程度不大于预设程度时,按照所述初步封装方式,对所述第一关键词进行封装。
7.一种存储过程转java代码的框架设计系统,其特征在于,包括:
web控制台,用于配置oracle连接信息,选择对应的存储过程;
引擎匹配模块,用于基于配置结果以及选择结果,匹配存储过程解析引擎;
过程转换模块,用于基于所述存储过程解析引擎将所述存储过程转换成中间映射语法糖;
映射模块,用于根据所述中间映射语法糖的映射关系,映射java关键词;
引擎配置模块,用于基于所述java关键词配置java代码模板引擎;
文件生成模块,用于将所述中间映射语法糖填充至java代码模板引擎,生成java文件,并输出;
其中,引擎匹配模块,用于:
对所述配置结果进行第一解析,获取得到第一目标数据;
对所述选择结果进行第二解析,获取得到第二目标数据;
提取所述第一目标数据的第一关键数据以及第二目标数据中的第二关键数据,并判断所述第一关键数据与第二关键数据是否可以完全匹配;
若可以,根据完全匹配结果,依次获取第一匹配对,并按照每个匹配对的匹配因子以及匹配属性,构建对应的第一匹配序列,并按照所述第一匹配序列,匹配得到存储过程解析引擎;
若不可以,获取可匹配的第二匹配对以及第一关键数据中的第一剩余匹配数据、第二关键数据中的第二剩余匹配数据;
对所述第一剩余匹配数据进行格式转换,得到第一码;
对所述第二剩余匹配数据进行格式转换,得到第二码;
从历史记录数据库中,调取在匹配存储过程解析引擎中的通用特征以及关键特征;
按照所述通用特征,从所述第一码中筛选第三码以及从所述第二码中筛选第四码,并按照所述第三码以及第四码的码权重,分配对应的第一序列位置;
按照所述关键特征,从所述第一码中筛选第五码以及从所述第二码中筛选第六码,并按照所述五码以及第六码的码权重,分配对应的第二序列位置;
基于所述第二匹配对的对关系,向所述第二匹配对分配对应的第三序列位置;
确定所述第一序列位置、第二序列位置以及第三序列位置中是否存在重叠位置;
若存在,确定所述重叠位置对应的不同数据的数据权重,若所述数据权重都大于预设权重,在所述重叠位置插接新位置,并将重叠位置的不同数据分开放置,并获取组序列;
若只存在所述数据权重小于预设权重的情况,此时,基于所述重叠位置随机保留一组数据,得到单序列,并在所有序列位置末尾建立新的存放位置,将同个重叠位置上的剩余数据进行放置;
基于所有组序列以及单序列构建得到第二匹配序列,同时,将所述新的存放位置上的数据进行构建,得到辅助匹配序列;
基于所述第二匹配序列,匹配得到第一解析引擎;
基于所述第二匹配序列以及辅助匹配序列,匹配得到第二解析引擎;
判断所述第一解析引擎与第二解析引擎是否为一个;
若是,将所述第二解析引擎视为存储过程解析引擎;
否则,对所述第一解析引擎以及第二解析引擎的解析性能进行判断,并将解析性能优的解析引擎视为存储过程解析引擎;
其中,将所述中间映射语法糖填充至java代码模板引擎,生成java文件,包括:
获取所述中间映射语法糖的中间层以及每个中间层的映射语法,同时,获取所述java代码模板引擎中若干模板块;
按照中间层的层属性与模板块的块属性进行第一匹配,同时,按照所述映射语法的语法属性与模板块的块属性进行第二匹配;
基于第一匹配结果以及第二匹配结果,确定对所述java代码模板引擎的待完善填充区域;
确定所述待完善填充区域的运行场景,并根据所述运行场景的场景指标,对所述待完善填充区域进行填充;
基于填充结果,确定所述java代码模板引擎的工作线程,并确定所述工作线程中每个工作节点的工作场景以及每个工作场景的场景触发代码;
确定所述场景触发代码的代码位置,并基于所述代码位置,对所述场景触发代码按照执行顺序进行编号,并获取相邻编号的场景触发代码的衔接关系以及对应工作场景的工作执行时长;
确定填充后的引擎的工作合理性H;
其中,n-1表示对代码位置编号;表示第i个编号对应场景触发代码的代码权重;表示第i-1个编号对应场景触发代码的代码权重;/>表示第i+1个编号对应场景触发代码的代码权重;/>表示相邻编号i与i+1对应的场景触发代码的衔接关系;/>表示相邻编号i与i-1对应的场景触发代码的衔接关系;/>表示第i个编号对应场景触发代码的工作执行时长;/>表示第i-1个编号对应场景触发代码的工作执行时长;/>表示第i+1个编号对应场景触发代码的工作执行时长;b1与b2表示常数;当工作合理性H满足预设范围时,按照填充后的引擎进行java文件的生成;
否则,获取不合理范围以及获取每个工作节点的节点属性,并基于所述节点属性以及不合理范围,从属性扩充数据库中,获取待扩充节点;
基于所述待扩充节点对所述工作线程进行扩充,得到合格的引擎,并进行java文件的生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210675153.0A CN115061689B (zh) | 2022-06-15 | 2022-06-15 | 一种存储过程转java代码的框架设计方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210675153.0A CN115061689B (zh) | 2022-06-15 | 2022-06-15 | 一种存储过程转java代码的框架设计方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115061689A CN115061689A (zh) | 2022-09-16 |
CN115061689B true CN115061689B (zh) | 2023-06-13 |
Family
ID=83201082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210675153.0A Active CN115061689B (zh) | 2022-06-15 | 2022-06-15 | 一种存储过程转java代码的框架设计方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115061689B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999600A (zh) * | 2012-11-20 | 2013-03-27 | 中兴通讯股份有限公司 | 一种嵌入式数据库自动生成方法和系统 |
CN103678118A (zh) * | 2013-10-18 | 2014-03-26 | 北京奇虎测腾科技有限公司 | 一种Java源代码的合规性检测方法和装置 |
US9209833B1 (en) * | 2015-06-25 | 2015-12-08 | Emc Corporation | Methods and apparatus for rational compression and decompression of numbers |
CN107704265A (zh) * | 2017-09-30 | 2018-02-16 | 电子科技大学 | 一种面向业务流可配置的规则生成方法 |
CN110825369A (zh) * | 2019-11-07 | 2020-02-21 | 四川长虹电器股份有限公司 | 一种基于java语言的代码自动生成的方法 |
CN111126008A (zh) * | 2019-12-25 | 2020-05-08 | 广东南方海岸科技服务有限公司 | 基于xsd的代码生成方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408493A (zh) * | 2018-10-17 | 2019-03-01 | 成都四方伟业软件股份有限公司 | 一种数据源的迁移方法及系统 |
CN112579626A (zh) * | 2020-09-28 | 2021-03-30 | 京信数据科技有限公司 | 多源异构sql查询引擎的构建方法及装置 |
CN114546402A (zh) * | 2022-02-21 | 2022-05-27 | 未鲲(上海)科技服务有限公司 | 基于java的结构化数据重构方法、装置、设备及存储介质 |
-
2022
- 2022-06-15 CN CN202210675153.0A patent/CN115061689B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999600A (zh) * | 2012-11-20 | 2013-03-27 | 中兴通讯股份有限公司 | 一种嵌入式数据库自动生成方法和系统 |
CN103678118A (zh) * | 2013-10-18 | 2014-03-26 | 北京奇虎测腾科技有限公司 | 一种Java源代码的合规性检测方法和装置 |
US9209833B1 (en) * | 2015-06-25 | 2015-12-08 | Emc Corporation | Methods and apparatus for rational compression and decompression of numbers |
CN107704265A (zh) * | 2017-09-30 | 2018-02-16 | 电子科技大学 | 一种面向业务流可配置的规则生成方法 |
CN110825369A (zh) * | 2019-11-07 | 2020-02-21 | 四川长虹电器股份有限公司 | 一种基于java语言的代码自动生成的方法 |
CN111126008A (zh) * | 2019-12-25 | 2020-05-08 | 广东南方海岸科技服务有限公司 | 基于xsd的代码生成方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115061689A (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5691925A (en) | Deriving tractable sub-system for model of larger system | |
US6530072B1 (en) | Rule based hierarchy generation in a circuit design verification system | |
JPH1173448A (ja) | フィルタリング型アプローチを使用する組合せ回路の検証方法 | |
CN106648587A (zh) | 一种基于注解的Web应用代码生成方法 | |
US20030139842A1 (en) | Fast algorithm to extract flat information from hierarchical netlists | |
US20050188323A1 (en) | Template creation apparatus and creation method | |
CN104320312A (zh) | 网络应用安全测试工具及模糊测试用例生成方法和系统 | |
JP2000232516A (ja) | 妥当性検査規則を作成するための方法、生成モジュール、サーバ、制御モジュール、および記憶手段 | |
CN106126224A (zh) | 一种生成程序对象的工具、系统和方法 | |
CN111724110A (zh) | 地址信息处理方法、装置、计算机设备和存储介质 | |
CN115061689B (zh) | 一种存储过程转java代码的框架设计方法及系统 | |
CN100527131C (zh) | 一种ims数据库互动式访问方法和工具 | |
CN114091383A (zh) | 测试序列生成方法、装置、系统及相关设备 | |
CN113704269A (zh) | 一种数据处理方法、系统、存储介质及电子设备 | |
JP2002259186A (ja) | Tree構造型インデクスの整合性チェック処理方法およびプログラムおよび装置 | |
Mauborgne | Abstract interpretation using typed decision graphs | |
CN115130043B (zh) | 基于数据库的数据处理方法、装置、设备及存储介质 | |
CN116561003A (zh) | 测试数据生成方法、装置、计算机设备和存储介质 | |
CN110941831A (zh) | 基于分片技术的漏洞匹配方法 | |
CN105094209B (zh) | 数据的修复方法及装置 | |
Mbala et al. | Towards a Formal Modelling of Data Warehouse Systems Design | |
KR20040050568A (ko) | 엔터프라이즈 빈 추출 장치 및 방법 | |
Dan et al. | Combining algebraic and model-based test case generation | |
Sun et al. | Research on a Component Testing Tool Supporting Data Integrity Verification | |
JP2910662B2 (ja) | 回路接続情報の比較装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |