CN114546402A - 基于java的结构化数据重构方法、装置、设备及存储介质 - Google Patents
基于java的结构化数据重构方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114546402A CN114546402A CN202210156912.2A CN202210156912A CN114546402A CN 114546402 A CN114546402 A CN 114546402A CN 202210156912 A CN202210156912 A CN 202210156912A CN 114546402 A CN114546402 A CN 114546402A
- Authority
- CN
- China
- Prior art keywords
- java
- sql
- code
- preset
- syntax tree
- 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.)
- Pending
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
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及数据存储开发领域,揭示了一种基于JAVA的结构化数据重构方法、装置、计算机设备及存储介质,其中方法包括:获取ORACLE数据库的储存过程中的交互语句;获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树;解析所述SQL语句语法树,形成第一代码集,所述第一代码集包括XML文件和整合相关JAVA代码;获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树;解析所述逻辑语法树,形成JAVA系统的底层逻辑代码;获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件。本申请能够提高数据库中储存过程中的交互信息转化的效率。
Description
技术领域
本申请涉及到数据存储开发领域,特别是涉及到一种基于JAVA的结构化数据重构方法、装置、计算机设备及存储介质。
背景技术
互联网时代来临及经济的发展,用户数量和交易量急剧增加,目前的金融系统大多是基于ORACLE存储过程的系统,基于ORACLE存储过程的系统的系统复杂、可读性差、可维护性差、维护成本高,并且无法满足大并发访问、快速响应、人性化的交互、数据安全等方面的要求,目前对于系统的交互信息的转化效率低,导致金融系统的交互效率低。
发明内容
本申请的主要目的为提供一种基于JAVA的结构化数据重构方法、装置、计算机设备及存储介质,旨在解决旧系统的数据库中储存过程中的交互信息的转化效率低的问题。
为了实现上述发明目的,本申请提出一种基于JAVA的结构化数据重构方法,包括:
获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句;
获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树;
解析所述SQL语句语法树,形成第一代码集,所述第一代码集包括XML文件和整合相关JAVA代码;
获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树;
解析所述逻辑语法树,形成JAVA系统的底层逻辑代码;
获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件。
进一步地,所述获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树,包括:
获取所述交互语句中的SQL语句;
获取所述SQL语句中的DDL格式语句,记为待解析语句集;
利用预设解析规则将所述待解析语句集解析,得到第一解析结果;所述第一解析结果中包含各DDL格式语句的解析信息;
确定所述第一解析结果内的解析信息的第一类型,基于所述第一类型对所述DDL格式语句添加对应的第一类型标签,生成XML形式的SQL语句语法树。
进一步地,所述获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树,包括:
获取所述交互语句中的非SQL语句;
利用预设分类规则对所述非SQL语句进行解析,得到第二解析结果;所述第二解析结果中包含各非SQL语句的解析信息;
确定所述第二解析结果内的解析信息的第二类型,基于所述第二类型对所述非SQL语句添加第二类型标签,生成XML形式的所述逻辑语法树。
进一步地,所述获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内,包括:
获取预设JAVA文件模版;
根据所述第一类型标签将所述XML文件、所述整合相关JAVA代码添加到预设JAVA文件模版内与所述第一类型标签对应的第一数据空挡内;
根据所述第二类型标签将所述层逻辑代码添加到预设JAVA文件模版内与所述第二类型标签对应的第二数据空挡内。
进一步地,所述将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件,包括:
获取预设系统逻辑,根据所述预设系统逻辑调整所述XML文件、所述整合相关JAVA代码以及所述层逻辑代码在所述预设JAVA文件模版内的系统配置,形成待打包JAVA文件;
对所述待打包JAVA文件进行压缩打包,形成目标JAVA文件并输出。
进一步地,所述解析所述SQL语句语法树,形成第一代码集;所述第一代码集包括XML文件和整合相关JAVA代码,包括:
将所述SQL语句语法树解析为JAVA系统中的DAO层数据;
根据所述DAO层数据生成XML文件和DAO层数据的整合相关JAVA代码。
进一步的,所述解析所述逻辑语法树,形成JAVA系统的底层逻辑代码,还包括:
将所述逻辑语法树解析为JAVA系统的service层逻辑代码;
利用预设分类及解析方法将所述service层逻辑代码转换为JAVA系统的底层逻辑代码。
本申请还提供一种基于JAVA的结构化数据重构装置,包括:
语句获取模块,用于获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句;
语句解析模块,用于获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树;
语法树解析模块,用于解析所述SQL语句语法树,形成第一代码集,所述第一代码集包括XML文件和整合相关JAVA代码;
逻辑语法模块,用于获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树;
底层逻辑模块,用于解析所述逻辑语法树,形成JAVA系统的底层逻辑代码;
打包输出模块,用于获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述基于JAVA的结构化数据重构方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述基于JAVA的结构化数据重构方法的步骤。
本申请例提供了一种将使用ORACLE数据库的存储过程转化为基于JAVA存储结构化数据的方法,首先获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句,再获取所述交互语句中的SQL语句并对所述SQL语句进行解析,将每个解析出来的信息进行打标,从而输出一个XML形式的SQL语句语法树,再解析所述SQL语句语法树,并将SQL语句语法树的解析结果整合形成第一代码集,即将所述SQL语句语法树解析翻译为JAVA系统中的DAO层相应的XML文件和JAVA代码,所述第一代码集中包含了所述预设解析引擎将所述SQL语句语法树解析后生成的XML文件以及整合相关JAVA代码,还获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析得到各非SQL语句的类型标签,再为非SQL语句各自打上对应逻辑语法的类型标签,生成XML形式的逻辑语法树,然后对所述逻辑语法树进行解析,将所述逻辑语法树解析翻译为JAVA系统的service层逻辑代码,形成JAVA系统的底层逻辑代码,再获取预设的JAVA文件模版,依次将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码填入至所述特征信息对应的预设JAVA文件模版的部分后,将所述预设JAVA文件模版进行打包,输出目标JAVA文件,通过预设解析引擎实现了对ORACLE数据库的储存过程中交互的SQL语句以及非SQL语句进行解析后压缩整合成新的JAVA数据包,无需通过人工对数据库的储存过程中交互的信息进行人工转换,从而降低了将使用ORACLE数据库系统转化为使用JAVA系统的人力成本以及研发时间成本,提高了将使用ORACLE数据库的金融系统转化为使用基于JAVA的金融系统的研发效率,以提高金融系统的交互效率。
附图说明
图1为本申请基于JAVA的结构化数据重构方法的一实施例流程示意图;
图2为本申请基于JAVA的结构化数据重构装置的一实施例结构示意图;
图3为本申请计算机设备的一实施例结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提供一种基于JAVA的结构化数据重构方法,包括步骤S10-S60,对于所述基于JAVA的结构化数据重构方法的各个步骤的详细阐述如下。
S10、获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句。
本实施例应用于金融系统中,将金融系统中基于ORACLE数据库的存储方式转换为基于JAVA语言开发的存储方式场景,可以配置在服务器上完成,通过将金融系统上传至服务器,由服务器将金融系统中使用ORACLE数据库存储过程转化为基于JAVA存储过程,从而基于JAVA实现业务逻辑。服务器首先获取预设解析引擎,所述预设解析引擎用于负责金融系统中使用ORACLE数据库存储过程包含的业务逻辑代码的解析以及分类操作,即基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句,可以理解的是,所述预设解析引擎的类型可以为任一种SQL转JAVA的解析引擎。
S20、获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树。
本实施例中,在基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句之后,获取所述交互语句中的SQL语句并对所述SQL语句进行解析,具体的,获取交互语句中的SQL语句,并对SQL语句进行分类,所述分类包括select、update、delete、insert、建表语句、创建index、创建view或者是其他类型的DDL语句,再根据分类后的SQL语句解析出SQL语句关联的表、表之间的关联方式、where语句组织形式、传递的变量值、涉及的列、是否有子查询、使用到的oracle函数等,将每个解析出来的信息进行打标,从而输出一个XML形式的SQL语句语法树,用于后续的代码解析。
S30、解析所述SQL语句语法树,形成第一代码集;所述第一代码集包括XML文件和整合相关JAVA代码。
本实施例中,在对所述SQL语句进行解析,生成XML形式的SQL语句语法树之后,解析所述SQL语句语法树,并将SQL语句语法树的解析结果整合形成第一代码集,即将所述SQL语句语法树解析翻译为JAVA系统中的DAO层相应的XML文件和JAVA代码,即所述第一代码集中包含了所述预设解析引擎将所述SQL语句语法树解析后生成的XML文件以及整合相关JAVA代码。
S40、获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树。
本实施例中,在解析所述SQL语句语法树,形成第一代码集;所述第一代码集包括XML文件和整合相关JAVA代码之后,还获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,首先解析所述非SQL语句的逻辑语法,识别所述逻辑语法的类型,包括类型定义、变量定义、function定义、procedure定义,系统包调用、外部包调用、各种判断路由、游标的定义、游标的打开、游标的循环、赋值语句、返回值、GOTO语句、exception控制、事物、系统LOG记录等,再为各个所述非SQL语句打上对应逻辑语法的类型标签,生成XML形式的逻辑语法树,用于后续的代码解析。
S50、解析所述逻辑语法树,形成JAVA系统的底层逻辑代码。
本实施例中,在对所述非SQL语句进行解析,生成XML形式的逻辑语法树之后,再对所述逻辑语法树进行解析,将所述逻辑语法树解析翻译为JAVA系统的底层逻辑代码,形成JAVA系统的底层逻辑代码。
S60、获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件。
本实施例中,在得到XML文件和整合相关JAVA代码以及底层逻辑代码后,获取预设的JAVA文件模版,所述预设JAVA文件模板为在服务器中预先配置的用于填入所述XML文件、所述整合相关JAVA代码以及所述层逻辑代码的预设JAVA文件模版,具体的,识别所述预设JAVA文件模版中各个部分的特征信息,根据所述特征信息与所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码进行匹配,依次将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码填入至所述特征信息对应的预设JAVA文件模版的部分,当将所述XML文件、所述整合相关JAVA代码以及所述层逻辑代码填入到所述预设JAVA文件模版后,将所述预设JAVA文件模版进行打包,得到目标JAVA文件,然后再输出所述目标JAVA文件,从而将基于ORACLE存储的交互语句转化为基于JAVA进行存储,提高了将使用ORACLE数据库的金融系统转化为使用基于JAVA的金融系统的研发效率,以提高金融系统的交互效率。
本实施例提供了一种将使用ORACLE数据库的存储过程转化为基于JAVA存储结构化数据的方法,首先获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句,再获取所述交互语句中的SQL语句并对所述SQL语句进行解析,将每个解析出来的信息进行打标,从而输出一个XML形式的SQL语句语法树,再解析所述SQL语句语法树,并将SQL语句语法树的解析结果整合形成第一代码集,即将所述SQL语句语法树解析翻译为JAVA系统中的DAO层相应的XML文件和JAVA代码,所述第一代码集中包含了所述预设解析引擎将所述SQL语句语法树解析后生成的XML文件以及整合相关JAVA代码,还获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析得到各非SQL语句的类型标签,再为非SQL语句各自打上对应逻辑语法的类型标签,生成XML形式的逻辑语法树,然后对所述逻辑语法树进行解析,将所述逻辑语法树解析翻译为JAVA系统的service层逻辑代码,形成JAVA系统的底层逻辑代码,再获取预设的JAVA文件模版,依次将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码填入至所述特征信息对应的预设JAVA文件模版的部分后,将所述预设JAVA文件模版进行打包,输出目标JAVA文件,通过预设解析引擎实现了对ORACLE数据库的储存过程中交互的SQL语句以及非SQL语句进行解析后压缩整合成新的JAVA数据包,无需通过人工对数据库的储存过程中交互的信息进行人工转换,从而降低了将使用ORACLE数据库系统转化为使用JAVA系统的人力成本以及研发时间成本,提高了将使用ORACLE数据库的金融系统转化为使用基于JAVA的金融系统的研发效率,以提高金融系统的交互效率。
在一个实施例中,所述获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树,包括:
获取所述交互语句中的SQL语句;
获取所述SQL语句中的DDL格式语句,记为待解析语句集;
利用预设解析规则将所述待解析语句集解析,得到第一解析结果;所述第一解析结果中包含各DDL格式语句的解析信息;
确定所述第一解析结果内的解析信息的第一类型,基于所述第一类型对所述DDL格式语句添加对应的第一类型标签,生成XML形式的SQL语句语法树。
本实施例中,在获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树的过程中,获取所述交互语句中的SQL语句,再获取所述SQL语句中的DDL格式语句,记为待解析语句集,利用预设解析规则将所述待解析语句集解析,得到第一解析结果;所述第一解析结果中包含各DDL格式语句的解析信息,具体的,所述预设解析规则包括“解析出所述待解析语句集中关联的表数据、表之间的关联方式数据、where语句组织形式数据、传递的变量值数据、涉及的列数据、是否有子查询数据以及使用到的oracle函数数据”,通过所述预设解析规则解析所述DDL格式语句中的关联的表数据、表之间的关联方式数据、where语句组织形式数据、传递的变量值数据、涉及的列数据、是否有子查询以及使用到的oracle函数数据,得到各个DDL格式语句的解析信息,将所述DDL格式语句的解析信息汇集成第一解析结果,然后确定所述第一解析结果内的各个解析信息的类型,定义为第一类型,基于所述第一类型对所述DDL格式语句添加对应的第一类型标签,从而生成XML形式的SQL语句语法树,使得生成的SQL语句语法树标记有不同语句的类型,提高SQL语句的解析准确性。
在一个实施例中,所述获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树,包括:
获取所述交互语句中的非SQL语句;
利用预设分类规则对所述非SQL语句进行解析,得到第二解析结果;所述第二解析结果中包含各非SQL语句的解析信息;
确定所述第二解析结果内的解析信息的第二类型,基于所述第二类型对所述非SQL语句添加第二类型标签,生成XML形式的所述逻辑语法树。
本实施例中,在获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树的过程中,获取所述交互语句中的非SQL语句,利用预设分类规则对所述非SQL语句进行解析,得到第二解析结果;所述第二解析结果中包含各非SQL语句的解析信息,所述预设分类规则包括“解析出所述所述非SQL语句中的类型定义信息、变量定义信息、function定义信息、procedure定义信息,系统包调用信息、外部包调用信息、各种判断路由信息、游标的定义信息、游标的打开信息、游标的循环信息、赋值语句信息、返回值信息、GOTO语句信息、exception控制信息、事物信息以及系统LOG记录信息”,通过所述预设分类规则得到各个非SQL语句的解析信息,并汇集成第二解析结果,然后确定所述第二解析结果内的解析信息的第二类型,所述第二类型包括定义信息、变量定义信息、function定义信息、procedure定义信息,系统包调用信息、外部包调用信息、各种判断路由信息、游标的定义信息、游标的打开信息、游标的循环信息、赋值语句信息、返回值信息、GOTO语句信息、exception控制信息、事物信息以及系统LOG记录信息,然后基于所述第二类型对所述非SQL语句添加第二类型标签,生成XML形式的所述逻辑语法树,使得生成的XML形式的所述逻辑语法树标记有不同语句的类型,提高非SQL语句的解析准确性。
在一个实施例中,所述获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内,包括:
获取预设JAVA文件模版;
根据所述第一类型标签将所述XML文件、所述整合相关JAVA代码添加到预设JAVA文件模版内与所述第一类型标签对应的第一数据空挡内;
根据所述第二类型标签将所述层逻辑代码添加到预设JAVA文件模版内与所述第二类型标签对应的第二数据空挡内。
本实施例中,在获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内的过程中,首先获取预设JAVA文件模版,然后根据所述第一类型标签将所述XML文件、所述整合相关JAVA代码添加到预设JAVA文件模版内与所述第一类型标签对应的第一数据空挡内,同时根据所述第二类型标签将所述层逻辑代码添加到预设JAVA文件模版内与所述第二类型标签对应的第二数据空挡内,使得不同的文件、代码能够填入到准确的JAVA文件模版中,从而提高JAVA文件输出的准确性。
在一个实施例中,所述将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件,包括:
获取预设系统逻辑,根据所述预设系统逻辑调整所述XML文件、所述整合相关JAVA代码以及所述层逻辑代码在所述预设JAVA文件模版内的系统配置,形成待打包JAVA文件;
对所述待打包JAVA文件进行压缩打包,形成目标JAVA文件并输出。
本实施例中,在将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件的过程中,获取预设系统逻辑,然后根据所述预设系统逻辑调整所述XML文件、所述整合相关JAVA代码以及所述层逻辑代码在所述预设JAVA文件模版内的系统配置,形成待打包JAVA文件;再对所述待打包JAVA文件进行压缩打包,形成目标JAVA文件并输出,从而根据不同的场景调整JAVA文件模版内的系统配置,提高JAVA文件的适用性。
在一个实施例中,所述解析所述SQL语句语法树,形成第一代码集;所述第一代码集包括XML文件和整合相关JAVA代码,包括:
将所述SQL语句语法树解析为JAVA系统中的DAO层数据;
根据所述DAO层数据生成XML文件和DAO层数据的整合相关JAVA代码。
本实施例中,在解析所述SQL语句语法树,形成第一代码集;所述第一代码集包括XML文件和整合相关JAVA代码的过程中,将所述SQL语句语法树解析为JAVA系统中的DAO层数据,然后根据所述DAO层数据生成XML文件和DAO层数据的整合相关JAVA代码,从而准确地对SQL语句语法树进行解析后映射至DAO层数据。
在一个实施例中,所述解析所述逻辑语法树,形成JAVA系统的底层逻辑代码,还包括:
将所述逻辑语法树解析为JAVA系统的service层逻辑代码;
利用预设分类及解析方法将所述service层逻辑代码转换为JAVA系统的底层逻辑代码。
本实施例中,在解析所述逻辑语法树,形成JAVA系统的底层逻辑代码的过程中,将所述逻辑语法树解析为JAVA系统的service层逻辑代码,然后利用预设分类及解析方法将所述service层逻辑代码转换为JAVA系统的底层逻辑代码,在一种实施方式中,所述预设分类及解析方法为“oracle包解析为一个java的service类数据,变量信息解析为JAVA的变量信息,自定义类型信息解析为JAVA的对象信息,function信息和procedure信息解析为JAVA的方法信息,系统包信息翻译为JAVA的util服务类调用信息,游标信息转换为JAVA对象信息,游标的打开信息翻译为一个循环信息,SQL exception控制信息解析为JAVA的exception服务信息,SQL的事物信息转换为JAVA的事物控制信息,SQL的LOG信息转换为JAVA系统的日志文件写入信息”,从而通过所述预设解析引擎将所述逻辑语法树解析为JAVA系统的service层逻辑代码,并将所述service层逻辑代码中的oracle包解析为一个java的service类数据,变量信息解析为JAVA的变量信息,自定义类型信息解析为JAVA的对象信息,function信息和procedure信息解析为JAVA的方法信息,系统包信息对应翻译为JAVA的util服务类调用信息,游标信息转换为JAVA对象信息,游标的打开信息翻译为一个循环信息,SQL exception控制信息解析为JAVA的exception服务信息,SQL的事物信息转换为JAVA的事物控制信息,SQL的LOG信息转换为JAVA系统的日志文件写入信息,从而将所述service层逻辑代码转换为底层逻辑代码,提高JAVA系统的底层逻辑代码转化的效率与准确率。
参照图2,本申请还提供一种基于JAVA的结构化数据重构装置,包括:
语句获取模块10,用于获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句;
语句解析模块,20用于获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树;
语法树解析模块30,用于解析所述SQL语句语法树,形成第一代码集,所述第一代码集包括XML文件和整合相关JAVA代码;
逻辑语法模块40,用于获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树;
底层逻辑模块50,用于解析所述逻辑语法树,形成JAVA系统的底层逻辑代码;
打包输出模块60,用于获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件。
如上所述,可以理解地,本申请中提出的所述基于JAVA的结构化数据重构装置的各组成部分可以实现如上所述基于JAVA的结构化数据重构方法任一项的功能。
在一个实施例中,所述获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树,包括:
获取所述交互语句中的SQL语句;
获取所述SQL语句中的DDL格式语句,记为待解析语句集;
利用预设解析规则将所述待解析语句集解析,得到第一解析结果;所述第一解析结果中包含各DDL格式语句的解析信息;
确定所述第一解析结果内的解析信息的第一类型,基于所述第一类型对所述DDL格式语句添加对应的第一类型标签,生成XML形式的SQL语句语法树。
在一个实施例中,所述获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树,包括:
获取所述交互语句中的非SQL语句;
利用预设分类规则对所述非SQL语句进行解析,得到第二解析结果;所述第二解析结果中包含各非SQL语句的解析信息;
确定所述第二解析结果内的解析信息的第二类型,基于所述第二类型对所述非SQL语句添加第二类型标签,生成XML形式的所述逻辑语法树。
在一个实施例中,所述获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内,包括:
获取预设JAVA文件模版;
根据所述第一类型标签将所述XML文件、所述整合相关JAVA代码添加到预设JAVA文件模版内与所述第一类型标签对应的第一数据空挡内;
根据所述第二类型标签将所述层逻辑代码添加到预设JAVA文件模版内与所述第二类型标签对应的第二数据空挡内。
在一个实施例中,所述将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件,包括:
获取预设系统逻辑,根据所述预设系统逻辑调整所述XML文件、所述整合相关JAVA代码以及所述层逻辑代码在所述预设JAVA文件模版内的系统配置,形成待打包JAVA文件;
对所述待打包JAVA文件进行压缩打包,形成目标JAVA文件并输出。
在一个实施例中,所述解析所述SQL语句语法树,形成第一代码集;所述第一代码集包括XML文件和整合相关JAVA代码,包括:
将所述SQL语句语法树解析为JAVA系统中的DAO层数据;
根据所述DAO层数据生成XML文件和DAO层数据的整合相关JAVA代码。
在一个实施例中,所述解析所述逻辑语法树,形成JAVA系统的底层逻辑代码,还包括:
将所述逻辑语法树解析为JAVA系统的service层逻辑代码;
利用预设分类及解析方法将所述service层逻辑代码转换为JAVA系统的底层逻辑代码。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是移动终端,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和显示装置及输入装置。其中,该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机设备的输入装置用于接收用户的输入。该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质。该存储介质存储有操作系统、计算机程序和数据库。该计算机设备的数据库用于存放数据。该计算机程序被处理器执行时以实现一种基于JAVA的结构化数据重构方法。
上述处理器执行上述的基于JAVA的结构化数据重构方法,包括:获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句;获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树;解析所述SQL语句语法树,形成第一代码集,所述第一代码集包括XML文件和整合相关JAVA代码;获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树;解析所述逻辑语法树,形成JAVA系统的底层逻辑代码;获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件。
所述计算机设备提供了一种将使用ORACLE数据库的存储过程转化为基于JAVA存储结构化数据的方法,首先获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句,再获取所述交互语句中的SQL语句并对所述SQL语句进行解析,将每个解析出来的信息进行打标,从而输出一个XML形式的SQL语句语法树,再解析所述SQL语句语法树,并将SQL语句语法树的解析结果整合形成第一代码集,即将所述SQL语句语法树解析翻译为JAVA系统中的DAO层相应的XML文件和JAVA代码,所述第一代码集中包含了所述预设解析引擎将所述SQL语句语法树解析后生成的XML文件以及整合相关JAVA代码,还获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析得到各非SQL语句的类型标签,再为非SQL语句各自打上对应逻辑语法的类型标签,生成XML形式的逻辑语法树,然后对所述逻辑语法树进行解析,将所述逻辑语法树解析翻译为JAVA系统的service层逻辑代码,形成JAVA系统的底层逻辑代码,再获取预设的JAVA文件模版,依次将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码填入至所述特征信息对应的预设JAVA文件模版的部分后,将所述预设JAVA文件模版进行打包,输出目标JAVA文件,通过预设解析引擎实现了对ORACLE数据库的储存过程中交互的SQL语句以及非SQL语句进行解析后压缩整合成新的JAVA数据包,无需通过人工对数据库的储存过程中交互的信息进行人工转换,从而降低了将使用ORACLE数据库系统转化为使用JAVA系统的人力成本以及研发时间成本,提高了将使用ORACLE数据库的金融系统转化为使用基于JAVA的金融系统的研发效率,以提高金融系统的交互效率。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被所述处理器执行时实现一种基于JAVA的结构化数据重构方法,包括步骤:获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句;获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树;解析所述SQL语句语法树,形成第一代码集,所述第一代码集包括XML文件和整合相关JAVA代码;获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树;解析所述逻辑语法树,形成JAVA系统的底层逻辑代码;获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件。
所述计算机可读存储介质提供了一种将使用ORACLE数据库的存储过程转化为基于JAVA存储结构化数据的方法,首先获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句,再获取所述交互语句中的SQL语句并对所述SQL语句进行解析,将每个解析出来的信息进行打标,从而输出一个XML形式的SQL语句语法树,再解析所述SQL语句语法树,并将SQL语句语法树的解析结果整合形成第一代码集,即将所述SQL语句语法树解析翻译为JAVA系统中的DAO层相应的XML文件和JAVA代码,所述第一代码集中包含了所述预设解析引擎将所述SQL语句语法树解析后生成的XML文件以及整合相关JAVA代码,还获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析得到各非SQL语句的类型标签,再为非SQL语句各自打上对应逻辑语法的类型标签,生成XML形式的逻辑语法树,然后对所述逻辑语法树进行解析,将所述逻辑语法树解析翻译为JAVA系统的service层逻辑代码,形成JAVA系统的底层逻辑代码,再获取预设的JAVA文件模版,依次将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码填入至所述特征信息对应的预设JAVA文件模版的部分后,将所述预设JAVA文件模版进行打包,输出目标JAVA文件,通过预设解析引擎实现了对ORACLE数据库的储存过程中交互的SQL语句以及非SQL语句进行解析后压缩整合成新的JAVA数据包,无需通过人工对数据库的储存过程中交互的信息进行人工转换,从而降低了将使用ORACLE数据库系统转化为使用JAVA系统的人力成本以及研发时间成本,提高了将使用ORACLE数据库的金融系统转化为使用基于JAVA的金融系统的研发效率,以提高金融系统的交互效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。
本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。
非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围。
凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种基于JAVA的结构化数据重构方法,其特征在于,包括:
获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句;
获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树;
解析所述SQL语句语法树,形成第一代码集;所述第一代码集包括XML文件和整合相关JAVA代码;
获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树;
解析所述逻辑语法树,形成JAVA系统的底层逻辑代码;
获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件。
2.根据权利要求1所述的基于JAVA的结构化数据重构方法,其特征在于,所述获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树,包括:
获取所述交互语句中的SQL语句;
获取所述SQL语句中的DDL格式语句,记为待解析语句集;
利用预设解析规则将所述待解析语句集解析,得到第一解析结果;所述第一解析结果中包含各DDL格式语句的解析信息;
确定所述第一解析结果内的解析信息的第一类型,基于所述第一类型对所述DDL格式语句添加对应的第一类型标签,生成XML形式的SQL语句语法树。
3.根据权利要求2所述的基于JAVA的结构化数据重构方法,其特征在于,所述获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树,包括:
获取所述交互语句中的非SQL语句;
利用预设分类规则对所述非SQL语句进行解析,得到第二解析结果;所述第二解析结果中包含各非SQL语句的解析信息;
确定所述第二解析结果内的解析信息的第二类型,基于所述第二类型对所述非SQL语句添加第二类型标签,生成XML形式的所述逻辑语法树。
4.根据权利要3所述的基于JAVA的结构化数据重构方法,其特征在于,所述获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内,包括:
获取预设JAVA文件模版;
根据所述第一类型标签将所述XML文件、所述整合相关JAVA代码添加到预设JAVA文件模版内与所述第一类型标签对应的第一数据空挡内;
根据所述第二类型标签将所述层逻辑代码添加到预设JAVA文件模版内与所述第二类型标签对应的第二数据空挡内。
5.根据权利要求4所述的基于JAVA的结构化数据重构方法,其特征在于,所述将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件,包括:
获取预设系统逻辑,根据所述预设系统逻辑调整所述XML文件、所述整合相关JAVA代码以及所述层逻辑代码在所述预设JAVA文件模版内的系统配置,形成待打包JAVA文件;
对所述待打包JAVA文件进行压缩打包,形成目标JAVA文件并输出。
6.根据权利要求1所述的基于JAVA的结构化数据重构方法,其特征在于,所述解析所述SQL语句语法树,形成第一代码集;所述第一代码集包括XML文件和整合相关JAVA代码,包括:
将所述SQL语句语法树解析为JAVA系统中的DAO层数据;
根据所述DAO层数据生成XML文件和DAO层数据的整合相关JAVA代码。
7.根据权利要求1所述的基于JAVA的结构化数据重构方法,其特征在于,所述解析所述逻辑语法树,形成JAVA系统的底层逻辑代码,还包括:
将所述逻辑语法树解析为JAVA系统的service层逻辑代码;
利用预设分类及解析方法将所述service层逻辑代码转换为JAVA系统的底层逻辑代码。
8.一种基于JAVA的结构化数据重构装置,其特征在于,包括:
语句获取模块,用于获取预设解析引擎,并基于所述预设解析引擎对ORACLE数据库的储存过程中进行解析,获取ORACLE数据库的储存过程中的交互语句;
语句解析模块,用于获取所述交互语句中的SQL语句并对所述SQL语句进行解析,生成XML形式的SQL语句语法树;
语法树解析模块,用于解析所述SQL语句语法树,形成第一代码集,所述第一代码集包括XML文件和整合相关JAVA代码;
逻辑语法模块,用于获取所述交互语句中的非SQL语句,并对所述非SQL语句进行解析,生成XML形式的逻辑语法树;
底层逻辑模块,用于解析所述逻辑语法树,形成JAVA系统的底层逻辑代码;
打包输出模块,用于获取预设JAVA文件模版,将所述XML文件、所述整合相关JAVA代码以及所述底层逻辑代码添加到预设JAVA文件模版内并打包,输出目标JAVA文件。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述基于JAVA的结构化数据重构方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述基于JAVA的结构化数据重构方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210156912.2A CN114546402A (zh) | 2022-02-21 | 2022-02-21 | 基于java的结构化数据重构方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210156912.2A CN114546402A (zh) | 2022-02-21 | 2022-02-21 | 基于java的结构化数据重构方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114546402A true CN114546402A (zh) | 2022-05-27 |
Family
ID=81675095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210156912.2A Pending CN114546402A (zh) | 2022-02-21 | 2022-02-21 | 基于java的结构化数据重构方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546402A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114896273A (zh) * | 2022-07-12 | 2022-08-12 | 苏州青颖飞帆软件科技有限公司 | 一种兼容存储过程的sql语句配置方法、设备及存储介质 |
CN115061689A (zh) * | 2022-06-15 | 2022-09-16 | 五矿国际信托有限公司 | 一种存储过程转java代码的框架设计方法及系统 |
-
2022
- 2022-02-21 CN CN202210156912.2A patent/CN114546402A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115061689A (zh) * | 2022-06-15 | 2022-09-16 | 五矿国际信托有限公司 | 一种存储过程转java代码的框架设计方法及系统 |
CN114896273A (zh) * | 2022-07-12 | 2022-08-12 | 苏州青颖飞帆软件科技有限公司 | 一种兼容存储过程的sql语句配置方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114546402A (zh) | 基于java的结构化数据重构方法、装置、设备及存储介质 | |
US20210279115A1 (en) | Automated api code generation | |
CN112882974B (zh) | 一种json数据转换方法、装置、计算机设备和存储介质 | |
US8316379B2 (en) | Method for invoking UOML instructions | |
CN109062925B (zh) | 自动生成insert语句的方法、装置、计算机设备及存储介质 | |
CN106951231B (zh) | 一种计算机软件开发方法及装置 | |
CN109597618B (zh) | 程序开发方法、装置、计算机设备及存储介质 | |
CN109710220B (zh) | 关系型数据库查询方法、装置、设备及存储介质 | |
CN112287013B (zh) | 数据转换方法及适配器 | |
CN116011400A (zh) | 一种项目标准测试文档自动化生成方法及装置 | |
CN115016793A (zh) | 基于语法树的代码生成方法和装置、电子设备、存储介质 | |
CN105893052A (zh) | 一种war包分析器 | |
CN113656404A (zh) | 数据校验方法、装置、计算机设备及存储介质 | |
CN103235757B (zh) | 基于自动化造数对输入域测试对象进行测试的装置和方法 | |
CN113641796A (zh) | 数据搜索方法、系统及存储介质 | |
CN115080011B (zh) | 基于抽象语法树的代码生成方法及系统 | |
CN116069667A (zh) | 基于代码分析的测试用例辅助定位方法及装置 | |
CN116185391A (zh) | 应用程序编程接口生成方法、装置、设备及存储介质 | |
CN115640316A (zh) | 数据查询的分页方法、拦截器、插件及服务器 | |
CN114492324A (zh) | 组件数据统计方法及装置 | |
CN111309319B (zh) | 可继承的局数据动态页面配置方法和装置 | |
CN110502483B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112114790A (zh) | 一种基于概念数据模型的领域代码生成方法及装置 | |
CN108228688B (zh) | 一种基于xbrl的模板生成方法、系统及服务器 | |
CN114064601A (zh) | 存储过程转换方法、装置、设备和存储介质 |
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 |