System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种数据处理方法及其装置制造方法及图纸_技高网

一种数据处理方法及其装置制造方法及图纸

技术编号:42665875 阅读:1 留言:0更新日期:2024-09-10 12:21
本申请提出了一种数据处理方法及其装置,涉及计算机技术领域,通过将源数据库对应的第一映射文件拆解为第一DML片段,第一DML片段由XML语言和源数据库对应的第一SQL语言组成;对第一DML片段进行预处理以获取第一SQL语句,预处理包括将第一DML片段中的目标内容转化为SQL注释并生成键值对记录;基于SQL解释器对第一SQL语句进行解析以获得抽象语法树,并基于源数据库到目标数据库的转换规则对抽象语法树对应的表达式进行转换以获取目标数据库对应的第二SQL语句;对第二SQL语句进行后处理以生成第二DML片段,后处理包括根据键值对记录对第二SQL语句进行还原,第二DML片段由XML语言和目标数据库对应的第二SQL语言组成;基于第二DML片段组成目标数据库对应的第二映射文件。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种数据处理方法及其装置


技术介绍

1、随着金融机构信息化水平的提升,数据库信创改造成为业界关注的焦点。在此过程中,将传统的oracle数据库迁移至mysql数据库,以适应业务发展和成本控制的需要,成为了一项重要任务。然而,由于oracle和mysql在结构化查询语言(structured querylanguage,sql)语法和功能上存在差异,导致java应用程序中的sql语句需要进行相应的改造,以确保程序的正常运行和性能优化。

2、java应用程序中的映射文件通常包含大量的sql语句与可扩展标记语言(extensible markup language,xml)语句,手动识别和修改其中的oracle语法与mysql语法差异繁琐耗时,需要大量的人力资源和时间成本,而且容易出现人为错误,影响迁移效率和质量。


技术实现思路

1、本公开提供一种数据处理方法及其装置,以至少解决相关技术中手动识别和修改oracle语法与mysql语法差异效率低的问题。

2、本申请第一方面实施例提出了一种数据处理方法,包括:将源数据库对应的第一映射文件拆解为第一数据操纵语言dml片段,其中,第一dml片段由可扩展标记语言xml语言和源数据库对应的第一结构化查询语言sql语言组成;对第一dml片段进行预处理以获取预处理之后生成的第一sql语句,其中,预处理包括将第一dml片段中的目标内容转化为sql注释并生成键值对记录;基于sql解释器对第一sql语句进行解析以获得抽象语法树,并基于源数据库到目标数据库的转换规则对抽象语法树对应的表达式进行转换,以获取目标数据库对应的第二sql语句;对第二sql语句进行后处理以生成目标数据库对应的第二dml片段,其中,后处理包括根据键值对记录对第二sql语句进行还原,其中,第二dml片段由xml语言和目标数据库对应的第二sql语言组成;基于第二dml片段组成目标数据库对应的第二映射文件。

3、根据本申请的一个实施例,源数据库为oracle数据库,目标数据库为mysql数据库,对第一dml片段进行预处理以获取预处理之后生成的第一sql语句,包括:对第一dml片段进行格式化以获得格式化dml片段;对格式化dml片段的每一行代码进行标记,标记内容为首行、注释行、数据行或尾行;将注释行转换为sql注释,并根据sql注释与注释行生成键值对记录;将数据行中的转义字符按照转换规则进行转换;将数据行中的动态sql语句的开标签和闭标签依次转换为sql注释,并生成sql注释与开标签的键值对记录以及sql注释与闭标签的键值对记录;对注释行和数据行进行拼接以生成第一sql语句。

4、根据本申请的一个实施例,生成sql注释与开标签的键值对记录以及sql注释与闭标签的键值对记录之后,还包括:判断数据行中的mybatis变量中是否包含逗号符号;若mybatis变量中包含逗号符号,将mybatis变量转换为sql注释,并根据sql注释与mybatis变量生成键值对记录。

5、根据本申请的一个实施例,sql注释携带数字标识,数字标识根据生成sql注释的时间先后顺序递增。

6、根据本申请的一个实施例,基于sql解释器对第一sql语句进行解析以获得抽象语法树,包括:基于sql解释器对第一sql语句进行语法分析和语义分析以获得抽象语法树,其中,注释行作为属性挂靠到抽象语法树对应的表达式中。

7、根据本申请的一个实施例,对第二sql语句进行后处理以生成目标数据库对应的第二dml片段,包括:对第二sql语句中的转义字符按照转换规则进行还原;根据键值对记录对第二sql语句中的sql注释进行还原以获得还原结果;在还原结果上添加首行和尾行以生成第二dml片段。

8、根据本申请的一个实施例,将源数据库对应的第一映射文件拆解为第一数据操纵语言dml片段,包括:识别第一映射文件中每段代码的头部的特定关键字;基于特定关键字,将第一映射文件拆解为第一dml片段,第一dml片段为select片段、insert片段、update片段和delete片段中的其中之一。

9、本申请第二方面实施例提出了一种数据处理装置,包括:拆解模块,用于将源数据库对应的第一映射文件拆解为第一数据操纵语言dml片段,其中,第一dml片段由可扩展标记语言xml语言和源数据库对应的第一结构化查询语言sql语言组成;预处理模块,用于对第一dml片段进行预处理以获取预处理之后生成的第一sql语句,其中,预处理包括将第一dml片段中的目标内容转化为sql注释并生成键值对记录;转换模块,用于基于sql解释器对第一sql语句进行解析以获得抽象语法树,并基于源数据库到目标数据库的转换规则对抽象语法树对应的表达式进行转换,以获取目标数据库对应的第二sql语句;后处理模块,用于对第二sql语句进行后处理以生成目标数据库对应的第二dml片段,其中,后处理包括根据键值对记录对第二sql语句进行还原,其中,第二dml片段由xml语言和目标数据库对应的第二sql语言组成;组装模块,用于基于第二dml片段组成目标数据库对应的第二映射文件。根据本申请的一个实施例,源数据库为oracle数据库,目标数据库为mysql数据库,预处理模块,还用于:对第一dml片段进行格式化以获得格式化dml片段;对格式化dml片段的每一行代码进行标记,标记内容为首行、注释行、数据行或尾行;将注释行转换为sql注释,并根据sql注释与注释行生成键值对记录;将数据行中的转义字符按照转换规则进行转换;将数据行中的动态sql语句的开标签和闭标签依次转换为sql注释,并生成sql注释与开标签的键值对记录以及sql注释与闭标签的键值对记录;对注释行和数据行进行拼接以生成第一sql语句。

10、根据本申请的一个实施例,预处理模块,还用于:判断数据行中的mybatis变量中是否包含逗号符号;若mybatis变量中包含逗号符号,将mybatis变量转换为sql注释,并根据sql注释与mybatis变量生成键值对记录。

11、根据本申请的一个实施例,预处理模块中所涉及到的sql注释携带数字标识,数字标识根据生成sql注释的时间先后顺序递增。

12、根据本申请的一个实施例,转换模块,还用于:基于sql解释器对第一sql语句进行语法分析和语义分析以获得抽象语法树,其中,注释行作为属性挂靠到抽象语法树对应的表达式中。

13、根据本申请的一个实施例,后处理模块,还用于:对第二sql语句中的转义字符按照转换规则进行还原;根据键值对记录对第二sql语句中的sql注释进行还原以获得还原结果;在还原结果上添加首行和尾行以生成第二dml片段。

14、根据本申请的一个实施例,拆解模块,还用于:识别第一映射文件中每段代码的头部的特定关键字;基于特定关键字,将第一映射文件拆解为第一dml片段,第一dml片段为select片段、insert片段、update片段和delete片段中的其中之一。本文档来自技高网...

【技术保护点】

1.一种数据处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述源数据库为Oracle数据库,所述目标数据库为MySQL数据库,所述对所述第一DML片段进行预处理以获取预处理之后生成的第一SQL语句,包括:

3.根据权利要求2所述的方法,其特征在于,所述生成所述SQL注释与所述开标签的键值对记录以及所述SQL注释与所述闭标签的键值对记录之后,还包括:

4.根据权利要求3所述的方法,其特征在于,所述SQL注释携带数字标识,所述数字标识根据生成所述SQL注释的时间先后顺序递增。

5.根据权利要求4所述的方法,其特征在于,所述基于SQL解释器对所述第一SQL语句进行解析以获得抽象语法树,包括:

6.根据权利要求5所述的方法,其特征在于,所述对所述第二SQL语句进行后处理以生成所述目标数据库对应的第二DML片段,包括:

7.根据权利要求1-6中任一项所述的方法,其特征在于,所述将源数据库对应的第一映射文件拆解为第一数据操纵语言DML片段,包括:

8.一种数据处理装置,其特征在于,包括:

9.一种电子设备,包括:

10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。

11.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种数据处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述源数据库为oracle数据库,所述目标数据库为mysql数据库,所述对所述第一dml片段进行预处理以获取预处理之后生成的第一sql语句,包括:

3.根据权利要求2所述的方法,其特征在于,所述生成所述sql注释与所述开标签的键值对记录以及所述sql注释与所述闭标签的键值对记录之后,还包括:

4.根据权利要求3所述的方法,其特征在于,所述sql注释携带数字标识,所述数字标识根据生成所述sql注释的时间先后顺序递增。

5.根据权利要求4所述的方法,其特征在于,所述基于sql解释器对所述第一sql语句进行解析以获得抽象语法树...

【专利技术属性】
技术研发人员:樊雨送马晓峰
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:

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

1