mapper文件处理方法及相关设备技术

技术编号:37508242 阅读:21 留言:0更新日期:2023-05-07 09:47
本公开提供一种mapper文件处理方法及相关设备,包括:获取数据库的数据信息,根据所述数据信息生成实体类以及mapper接口与mapper文件,对所述mapper文件进行安全检查与修复,得到安全mapper文件,响应于确定所述数据库迁移,对所述安全mapper文件中字符进行替换,得到与迁移后的数据库相适配的安全mapper文件。本公开解决了当前MyBatis框架中,框架自身不存在保护机制,且框架自身兼容性较差的问题。且框架自身兼容性较差的问题。且框架自身兼容性较差的问题。

【技术实现步骤摘要】
mapper文件处理方法及相关设备


[0001]本公开涉及信息化开发
,尤其涉及一种mapper文件处理方法及相关设备。

技术介绍

[0002]在信息化开发领域,java开发者除了需要编写大量的SQL语句,还要频繁操作数据库的事务,而不能把精力集中于业务逻辑上,开发效率低下。为解决以上信息化系统与数据库交互的问题,各种有关数据库操作框架应运而生,目前数据库操作框架比较流行的有hibernate、MyBatis两种,而MyBatis框架在灵活性和扩展性方面较hibernate方面有较大的优势,因此越来越多的开发者在更多场合下选择使用MyBatis框架。但当前MyBatis框架中,框架自身并不存在保护机制,且框架自身兼容性较差。

技术实现思路

[0003]有鉴于此,本公开的目的在于提出一种mapper文件处理方法及相关设备,用以解决或部分解决上述问题。
[0004]基于上述目的,本公开的第一方面提供了一种mapper文件处理方法,所述方法包括:
[0005]获取数据库的数据信息;
[0006]根据所述数据信息生成实体类以及mapper接口与mapper文件;
[0007]对所述mapper文件进行安全检查与修复,得到安全mapper文件;
[0008]响应于确定所述数据库迁移,对所述mapper文件中字符进行替换,得到与迁移后的数据库相适配的mapper文件。
[0009]可选地,所述获取数据库的数据信息,包括:
[0010]获取数据库中的所有数据表的表名;
[0011]根据所述数据表的表名对所述数据表进行查询,得到所述数据表中的元数据基本信息。
[0012]可选地,所述元数据基本信息包括:字段名、字段类型和字段是否为空。
[0013]可选地,所述根据所述数据信息自动生成实体类以及mapper接口与mapper文件,包括:
[0014]将所述元数据基本信息存入所述数据库中的TableInfo类;
[0015]将所述TableInfo类填入所述实体类的模板,并存放在所述实体类的目录下;
[0016]在所述mapper接口中创建对所述数据表的基础SQL操作方法,将所述基础SQL操作方法存放在java接口目录下;
[0017]在所述mapper文件中根据所述基础SQL操作方法得到SQL操作语句,并将所述SQL操作语句存放在所述mapper文件的目录下。
[0018]可选地,所述对所述mapper文件进行安全检查与自动修复,得到安全mapper文件,
包括:
[0019]对所述mapper文件进行遍历,匹配风险字符,所述风险字符包括拼接字符串字符$;
[0020]响应于所述mapper文件中包含所述$字符,确定通过substring方法截取包含所述$字符的完整SQL语句;
[0021]将所述$符号替换成#符号,得到安全mapper文件,并记录所述mapper文件的修改信息。
[0022]可选地,所述方法还包括:
[0023]响应于确定所述完整SQL语句包含特殊函数,根据所述特殊函数进行特殊处理;
[0024]响应于所述特殊函数为in函数,确定在所述完整SQL语句中添加foreach函数,将所述$符号替换成#符号;
[0025]响应于所述特殊函数为like函数,确定在所述完整SQL语句中添加concat函数,将所述$符号替换成#符号;
[0026]响应于所述特殊函数为order by函数,确定将所述完整SQL语句发送至用户端进行检查。
[0027]可选地,所述响应于确定所述数据库进行迁移,对所述mapper文件中字符进行替换,得到与迁移后的数据库相适配的mapper文件,包括:
[0028]对所述mapper文件进行遍历,得到特征字符;
[0029]对所述特征字符进行解析替换,得到与迁移后的数据库相适配的安全mapper文件;
[0030]记录所述安全mapper文件的修改信息。
[0031]基于同一专利技术构思,本公开的第二方面提出了一种mapper文件处理系统,包括:
[0032]代码生成模块,被配置为获取数据库的数据信息,根据所述数据信息生成实体类以及mapper接口与mapper文件;
[0033]代码安全防护模块,被配置为对所述mapper文件进行安全检查与修复,得到安全mapper文件;
[0034]数据库适配模块,被配置为对所述安全mapper文件中字符进行替换,得到与迁移后的数据库相适配的mapper文件。
[0035]基于同一专利技术构思,本公开的第三方面提出了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如上所述的方法。
[0036]基于同一专利技术构思,本公开的第四方面提出了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上所述的方法。
[0037]从上面所述可以看出,本公开提供了一种mapper文件处理方法及相关设备,通过获取数据库的数据信息,根据所述数据信息生成实体类以及mapper接口与mapper文件,对所述mapper文件进行安全检查与修复,得到安全mapper文件,响应于确定所述数据库迁移,对所述安全mapper文件中字符进行替换,得到与迁移后的数据库相适配的安全mapper文件。基于本公开实施的方案,通过对mapper文件进行安全检查与修复,降低了开发的安全风
险,提高了java系统操作数据库的代码安全性;当数据库迁移时,对mapper文件中的字符进行检查替换,解决了框架自身兼容性较差,用户手动修改时准确性较低的问题,提高系统兼容性、减少数据库迁移的工作量。
附图说明
[0038]为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为本公开实施例的mapper文件处理方法的流程图;
[0040]图2A为本公开另一应用场景下的实施例的第一部分流程图;
[0041]图2B为本公开另一应用场景下的实施例的第二部分流程图;
[0042]图2C为本公开另一应用场景下的实施例的第三部分流程图;
[0043]图3为本公开实施例的mapper文件处理系统的结构框图;
[0044]图4为本公开实施例的电子设备的结构示意图。
具体实施方式
[0045]为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
[0046]需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种mapper文件处理方法,其特征在于,包括:获取数据库的数据信息;根据所述数据信息生成实体类以及mapper接口与mapper文件;对所述mapper文件进行安全检查与修复,得到安全mapper文件;响应于确定所述数据库迁移,对所述mapper文件中字符进行替换,得到与迁移后的数据库相适配的mapper文件。2.根据权利要求1所述的方法,其特征在于,所述获取数据库的数据信息,包括:获取数据库中的所有数据表的表名;根据所述数据表的表名对所述数据表进行查询,得到所述数据表中的元数据基本信息。3.根据权利要求2所述的方法,其特征在于,所述元数据基本信息包括:字段名、字段类型和字段是否为空。4.根据权利要求2所述的方法,其特征在于,所述根据所述数据信息自动生成实体类以及mapper接口与mapper文件,包括:将所述元数据基本信息存入所述数据库中的TableInfo类;将所述TableInfo类填入所述实体类的模板,并存放在所述实体类的目录下;在所述mapper接口中创建对所述数据表的基础SQL操作方法,将所述基础SQL操作方法存放在java接口目录下;在所述mapper文件中根据所述基础SQL操作方法得到SQL操作语句,并将所述SQL操作语句存放在所述mapper文件的目录下。5.根据所述权利要求1所述的方法,其特征在于,所述对所述mapper文件进行安全检查与自动修复,得到安全mapper文件,包括:对所述mapper文件进行遍历,匹配风险字符,所述风险字符包括拼接字符串字符$;响应于所述mapper文件中包含所述$字符,确定通过substring方法截取包含所述$字符的完整SQL语句;将所述$符号替换成#符号,得到安全mapper文件...

【专利技术属性】
技术研发人员:姚小松李云嵩赵晨李阳马淑静段利军侯悦欧清海
申请(专利权)人:北京中电飞华通信有限公司
类型:发明
国别省市:

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

1