System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于评估数据库改造效果的全自动比对方法、设备及介质技术_技高网

用于评估数据库改造效果的全自动比对方法、设备及介质技术

技术编号:43872658 阅读:5 留言:0更新日期:2024-12-31 18:57
本发明专利技术涉及一种用于评估数据库改造效果的全自动比对方法、设备及介质,用于对第一数据库改造为第二数据库的改造效果进行评估,该方法包括:S1、扫描第一数据库和第二数据库对应的Mapper文件,根据设定解析规则,生成可执行的SQL语句;S2、从第一数据库和第二数据库扫描获取表结构和表内容,根据表结构和内容对可执行的SQL语句的对应内容进行替换;S3、将替换内容后的可执行的SQL语句封装,通过执行接口发送请求并返回执行结果,对执行结果进行比对。与现有技术相比,本发明专利技术具有自动化程度高、准确性高的优点。

【技术实现步骤摘要】

本专利技术涉及数据库改造,尤其是涉及一种用于评估数据库改造效果的全自动比对方法、设备及介质


技术介绍

1、随着银行数字化转型、信创改造的不断深入,数据库国产化改造已经成为银行系统开发的关键步骤之一。在银行数字化转型的过程中,数据库作为银行的核心数据存储和处理系统,需要具备高效、安全、可靠的数据存储和管理能力,以满足银行不断变化的业务需求和用户需求。

2、对于数据库的改造主要包括两个方面,一是将原有系统的数据库改为国产化数据库,二是将程序中的sql语句改造为国产化数据库可执行的语句,遵循相关语法规范对原有语句进行优化。改造后的数据库及sql,需要保持与原有系统的内容一致性,保证业务的正常有序进行,并在此基础上提升系统的有效性,增加业务功能的流畅性,使客户的使用体验更为友好便捷。改造效果的验证,是数据库改造中很重要的一个环节,能够检验开发人员近期的工作成果,保障改造工作的准确有序进行。

3、如何有效准确地对改造效果进行验证是亟需解决的一个问题。对于改造效果的检验包含两方面,一是改造后的sql返回结果,二是改造后的sql执行耗时。现有的工具postman依赖于人工编写sql、发送请求,耗时耗力,无法充分满足项目组对于数据库效果比对的要求。


技术实现思路

1、本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供了一种自动化程度高、准确性高的用于评估数据库改造效果的全自动比对方法、设备及介质。

2、本专利技术的目的可以通过以下技术方案来实现:

3、根据本专利技术的第一方面,提供了一种用于评估数据库改造效果的全自动比对方法,用于对第一数据库改造为第二数据库的改造效果进行评估,该方法包括:

4、s1、扫描第一数据库和第二数据库对应的mapper文件,根据设定解析规则,生成可执行的sql语句;

5、s2、从第一数据库和第二数据库扫描获取表结构和表内容,根据表结构和内容对可执行的sql语句的对应内容进行替换;

6、s3、将替换内容后的可执行的sql语句封装,通过执行接口发送请求并返回执行结果,对执行结果进行比对。

7、优选地,所述s1中,扫描第一数据库和第二数据库对应的mapper文件,根据设定解析规则,生成可执行的sql语句,具体包括:

8、通过elementtree库扫描第一数据库和第二数据库对应的mapper文件中的设定标签对,找到对应的mapper语句,去除标签对,将匹配到的“#{字段}”替换为“1”,生成可执行的sql语句。

9、优选地,所述设定标签对包括<select></select>、<update></update>、<insert></insert>、以及<delete></delete>。

10、优选地,所述s1中还包括,扫描第一数据库和第二数据库对应的mapper文件中的特殊标签,根据设定解析规则,生成可执行的sql语句,具体为:

11、对于<insert>标签的主键属性“keyproperty”及“usegeneratedkeys”,若满足“usegeneratedkeys”主键属性值为true,且sql语句中没有“keyproperty”属性值作为字段,则将对应的字段加上字段前缀添加至可执行sql语句中,在相应位置加上字段值“1”;

12、对于<if></if>标签对,去掉整个if条件,将对应字段及字段值“1”添加至可执行sql语句中;

13、对于<where></where>标签对,将“where”添加至<where>原有位置,然后去掉原有标签对;

14、update语句中更新多个字段时,若set部分末尾以逗号结束,则去掉该逗号;

15、对于<set></set>标签对,替换为set;

16、对于<!--注释内容-->标签,删除处理。

17、优选地,所述s2中,根据表结构和内容对可执行的sql语句的对应内容进行替换,具体为:

18、对第一数据库和第二数据库的表结构进行比对,对数据库各个表中字段名和字段属性进行一致性核查,并记录不一致信息于结果记录中;

19、扫描可执行的sql语句,在结果记录中查询可执行的sql语句涉及到的表名,将字段进行对比匹配,将可执行的sql语句中“1”替换成结果记录中字段内容,去除可执行的sql语句中结果记录未有的字段。

20、优选地,所述对第一数据库和第二数据库的表结构进行比对,对数据库各个表中字段名和字段属性进行一致性核查,并记录不一致信息于结果记录中,具体为:

21、1)连接第一数据库和第二数据库,获取所有表名,循环扫描第二数据库中表名;

22、2)判断第二数据库中表名是否与第一数据库中表名匹配,如匹配则转3),否则认定“表名不一致或不存在”并记录于结果记录中;

23、3)获取第一数据库和第二数据库中表的字段信息,循环扫描第二数据库中表中的字段;

24、4)判断第二数据库中表中字段是否与第一数据库中表中字段匹配,如匹配则转5),否则认定“字段名不一致或不存在”并记录于结果记录中;

25、5)获取字段属性;

26、6)判断第二数据库中表中字段属性是否与第一数据库中表中字段属性匹配,如匹配转3)循环,否则认定“字段属性不一致”并记录于结果记录中。

27、优选地,所述s3中,将替换内容后的可执行的sql语句封装,通过requests库模拟真实环境向执行接口发送sql请求,并返回执行耗时和执行结果;

28、其中,所述sql请求对应的接口参数包括执行数据库类型、执行操作及可执行的sql语句,对应的返回结果包括sql的执行时间及执行结果。

29、优选地,所述将替换内容后的可执行的sql语句封装,包括:

30、对于insert语句,首先生成delete报文,每次发送insert请求报文前,先发送一次delete请求报文;

31、对于包含insert的sql语句,根据表名、第一个字段及字段值,生成一个delete类型的sql语句,拼装成对应的delete报文。

32、根据本专利技术的第二方面,提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现任一项所述的方法。

33、根据本专利技术的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现任一项所述的方法。

34、与现有技术相比,本专利技术具有以下有益效果:

35、1)本专利技术整个生成sql及报文比对的过程实现全自动化,实现了数据库改造前后对比,减少了大量本文档来自技高网...

【技术保护点】

1.一种用于评估数据库改造效果的全自动比对方法,用于对第一数据库改造为第二数据库的改造效果进行评估,其特征在于,该方法包括:

2.根据权利要求1所述的一种用于评估数据库改造效果的全自动比对方法,其特征在于,所述S1中,扫描第一数据库和第二数据库对应的Mapper文件,根据设定解析规则,生成可执行的SQL语句,具体包括:

3.根据权利要求2所述的一种用于评估数据库改造效果的全自动比对方法,其特征在于,所述设定标签对包括<select></select>、<update></update>、<insert></insert>、以及<delete></delete>。

4.根据权利要求2所述的一种用于评估数据库改造效果的全自动比对方法,其特征在于,所述S1中还包括,扫描第一数据库和第二数据库对应的Mapper文件中的特殊标签,根据设定解析规则,生成可执行的SQL语句,具体为:

5.根据权利要求2所述的一种用于评估数据库改造效果的全自动比对方法,其特征在于,所述S2中,根据表结构和内容对可执行的SQL语句的对应内容进行替换,具体为:

6.根据权利要求5所述的一种用于评估数据库改造效果的全自动比对方法,其特征在于,所述对第一数据库和第二数据库的表结构进行比对,对数据库各个表中字段名和字段属性进行一致性核查,并记录不一致信息于结果记录中,具体为:

7.根据权利要求1所述的一种用于评估数据库改造效果的全自动比对方法,其特征在于,所述S3中,将替换内容后的可执行的SQL语句封装,通过requests库模拟真实环境向执行接口发送SQL请求,并返回执行耗时和执行结果;

8.根据权利要求7所述的一种用于评估数据库改造效果的全自动比对方法,其特征在于,所述将替换内容后的可执行的SQL语句封装,包括:

9.一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~8任一项所述的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~8中任一项所述的方法。

...

【技术特征摘要】

1.一种用于评估数据库改造效果的全自动比对方法,用于对第一数据库改造为第二数据库的改造效果进行评估,其特征在于,该方法包括:

2.根据权利要求1所述的一种用于评估数据库改造效果的全自动比对方法,其特征在于,所述s1中,扫描第一数据库和第二数据库对应的mapper文件,根据设定解析规则,生成可执行的sql语句,具体包括:

3.根据权利要求2所述的一种用于评估数据库改造效果的全自动比对方法,其特征在于,所述设定标签对包括<select></select>、<update></update>、<insert></insert>、以及<delete></delete>。

4.根据权利要求2所述的一种用于评估数据库改造效果的全自动比对方法,其特征在于,所述s1中还包括,扫描第一数据库和第二数据库对应的mapper文件中的特殊标签,根据设定解析规则,生成可执行的sql语句,具体为:

5.根据权利要求2所述的一种用于评估数据库改造效果的全自动比对...

【专利技术属性】
技术研发人员:姚龙飞冯连岗王曼丽刘杰
申请(专利权)人:交通银行股份有限公司
类型:发明
国别省市:

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

1