解析XML与Java文件的SQL方法、装置、设备及存储介质制造方法及图纸

技术编号:31022343 阅读:23 留言:0更新日期:2021-11-30 03:14
本发明专利技术公开了一种本发明专利技术一实施例中的解析XML与Java文件的SQL方法、装置、设备及存储介质,针对传统的SQL解析方法耗时比较长,效率比较低,且准确率低的问题,通过字符串匹配,获取XML文件中的数据库配置信息,从中提取数据库配置映射的唯一标识;采用正则表达式匹配算法,结合sqlparse数据库,获取数据库映射中的XML树的父节点及子节点;读取各节点的标签属性及相应的节点值,将其转化为对应的SQL;获取包含XMLSQL关键字的Java注解文件,提取包含SQL关键字的行,采用正则表达式查询替换算法,将包含SQL关键字的行转化为对应的SQL语句。本发明专利技术使用正则表达式和XML树进行查询解析匹配,替代传统的SQL关键字匹配,极大地提高了解析过程的稳定性和匹配准确率。析过程的稳定性和匹配准确率。析过程的稳定性和匹配准确率。

【技术实现步骤摘要】
解析XML与Java文件的SQL方法、装置、设备及存储介质


[0001]本专利技术属于Java项目开发的
,尤其涉及一种解析XML与Java文件的SQL方法、装置、设备及存储介质。

技术介绍

[0002]Java后端开发项目中,存在大量的XML配置文件和Java注解代码,这是Java项目的持久层框架所决定的,对Java项目进行SQL审计的时候,必须提取解析项目代码中的sql。
[0003]通常会采用以下方法提取解析项目代码中的sql:
[0004]步骤1:扫描整个Java项目目录,获取所有代码文件。具体开发代码请参看图1;
[0005]步骤2:读取Java文件,通过关键字匹配找出包含sql关键字的行。具体开发代码请参看图2。
[0006]对于大型Java后端项目来说,由于代码繁多,该方法耗时比较长,效率比较低,且准确率低,只能匹配原生sql,稳定性比较差。

技术实现思路

[0007]本专利技术的目的是提供一种解析XML与Java文件的SQL方法、装置、设备及存储介质,通过正则表达式和xml树解析匹配,时效高,并且支持匹配XML文件和Java注解文件的sql,具有解析快、准确率高的优点。
[0008]为解决上述问题,本专利技术的技术方案为:
[0009]一种解析XML与Java文件的SQL方法,包括:
[0010]通过文件名匹配,获取开发项目中的XML文件;
[0011]通过字符串匹配,获取XML文件中的数据库配置信息,从中提取数据库配置映射的唯一标识;
[0012]根据数据库配置映射的唯一标识,采用正则表达式匹配算法,结合sqlparse数据库,获取数据库映射中的XML树的父节点及子节点;读取各XML节点的标签属性及相应的节点值,将XML节点转化为对应的SQL语句;
[0013]获取包含XML SQL关键字的Java注解文件,提取Java注解文件中包含SQL关键字的行,采用正则表达式查询替换算法,将包含SQL关键字的行转化为对应的SQL语句。
[0014]根据本专利技术一实施例,所述通过字符串匹配,获取XML文件中的数据库配置信息进一步包括:
[0015]通过cat及grep命令,获取XML文件的数据库连接信息及Mapper映射关系。
[0016]根据本专利技术一实施例,所述获取包含XML SQL关键字的Java注解文件,提取Java注解文件中包含SQL关键字的行,采用正则表达式查询替换算法,将包含SQL关键字的行转化为对应的SQL语句进一步包括:
[0017]从开发项目中查找包含@select、@insert、@update、@delete的XML SQL关键字的所有Java注解文件,逐行读取Java注解文件中包含select、insert、update、alter、
truncate、create、drop的SQL关键字的行,并跳过包含SQL注释的行;
[0018]采用正则表达式匹配算法,获取foreach、if、choose、otherwise、when标签中的SQL,并对SQL进行格式化,从而将Java注解文件转化为对应的SQL文件。
[0019]一种解析XML与Java文件的SQL装置,包括:
[0020]第一解析模块,用于通过文件名匹配,获取开发项目中的XML文件;通过字符串匹配,获取XML文件中的数据库配置信息,从中提取数据库配置映射的唯一标识;根据数据库配置映射的唯一标识,采用正则表达式匹配算法,结合sqlparse数据库,获取数据库映射中的XML树的父节点及子节点;读取各XML节点的标签属性及相应的节点值,将XML节点转化为对应的SQL语句;
[0021]第二解析模块,用于获取包含XML SQL关键字的Java注解文件,提取Java注解文件中包含SQL关键字的行,采用正则表达式查询替换算法,将包含SQL关键字的行转化为对应的SQL语句。
[0022]根据本专利技术一实施例,所述第一解析模块通过cat及grep命令,获取XML文件的数据库连接信息及Mapper映射关系,从中提取数据库配置映射的唯一标识mapperID。
[0023]根据本专利技术一实施例,所述第二解析模块从开发项目中查找包含@select、@insert、@update、@delete的XML SQL关键字的所有Java注解文件,逐行读取Java注解文件中包含select、insert、update、alter、truncate、create、drop的SQL关键字的行,并跳过包含SQL注释的行;采用正则表达式匹配算法,获取foreach、if、choose、otherwise、when标签中的SQL,并对SQL进行格式化,从而将Java注解文件转化为对应的SQL文件。
[0024]一种解析XML与Java文件的SQL设备,包括:
[0025]存储器和处理器,所述存储器中存储有指令,所述存储器和所述处理器通过线路互连;
[0026]所述处理器调用所述存储器中的所述指令,实现本专利技术一实施例中的解析XML与Java文件的SQL方法。
[0027]一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本专利技术一实施例中的解析XML与Java文件的SQL方法。
[0028]本专利技术由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:
[0029]1)本专利技术一实施例中的解析XML与Java文件的SQL方法,针对传统的SQL解析方法耗时比较长,效率比较低,且准确率低,只能匹配原生sql,稳定性比较差的问题,通过字符串匹配,获取XML文件中的数据库配置信息,从中提取数据库配置映射的唯一标识;根据数据库配置映射的唯一标识,采用正则表达式匹配算法,结合sqlparse数据库,获取数据库映射中的XML树的父节点及子节点;读取各XML节点的标签属性及相应的节点值,将XML节点转化为对应的SQL语句;获取包含XML SQL关键字的Java注解文件,提取Java注解文件中包含SQL关键字的行,采用正则表达式查询替换算法,将包含SQL关键字的行转化为对应的SQL语句。使用正则表达式和XML树进行查询解析匹配,替代传统的SQL关键字匹配,极大地提高了解析过程的稳定性和匹配准确率。
[0030]2)本专利技术一实施例中的解析XML与Java文件的SQL方法,对Java项目进行SQL文件解析时,基于linux find和grep、egrep命令,提取出XML配置文件和Java注解文件,减少无
效文件读取匹配,从而尽可能提高SQL解析效率。
附图说明
[0031]图1为本专利技术
技术介绍
中获取文件的代码图;
[0032]图2为本专利技术
技术介绍
中sql关键字匹配的代码图;
[0033]图3为本专利技术一实施例中的解析XML与Java文件的SQL方法流图;
[0034]图4为本专利技术一实施例中的解析XML与本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种解析XML与Java文件的SQL方法,其特征在于,包括:通过文件名匹配,获取开发项目中的XML文件;通过字符串匹配,获取XML文件中的数据库配置信息,从中提取数据库配置映射的唯一标识;根据数据库配置映射的唯一标识,采用正则表达式匹配算法,结合sqlparse数据库,获取数据库映射中的XML树的父节点及子节点;读取各XML节点的标签属性及相应的节点值,将XML节点转化为对应的SQL语句;获取包含XML SQL关键字的Java注解文件,提取Java注解文件中包含SQL关键字的行,采用正则表达式查询替换算法,将包含SQL关键字的行转化为对应的SQL语句。2.如权利要求1所述的解析XML与Java文件的SQL方法,其特征在于,所述通过字符串匹配,获取XML文件中的数据库配置信息进一步包括:通过cat及grep命令,获取XML文件的数据库连接信息及Mapper映射关系。3.如权利要求1所述的解析XML与Java文件的SQL方法,其特征在于,所述获取包含XML SQL关键字的Java注解文件,提取Java注解文件中包含SQL关键字的行,采用正则表达式查询替换算法,将包含SQL关键字的行转化为对应的SQL语句进一步包括:从开发项目中查找包含@select、@insert、@update、@delete的XML SQL关键字的所有Java注解文件,逐行读取Java注解文件中包含select、insert、update、alter、truncate、create、drop的SQL关键字的行,并跳过包含SQL注释的行;采用正则表达式匹配算法,获取foreach、if、choose、otherwise、when标签中的SQL,并对SQL进行格式化,从而将Java注解文件转化为对应的SQL文件。4.一种解析XML与Java文件的SQL装置,其特征在于,包括:第一解析模块,用于通过文件名匹配,获取开发项目中的XML文件;通过字符串匹配,获取XML文件中的数据库配置信息,从中提取数据库配置映...

【专利技术属性】
技术研发人员:陈武艾杰贾亚武
申请(专利权)人:上海一谈网络科技有限公司
类型:发明
国别省市:

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

1