利索能及
我要发布
收藏
专利号: 2019109027591
申请人: 平安科技(深圳)有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种查询语句边界问题的检测方法,其特征在于,包括:接收sql边界检测指令,所述sql边界检测指令中包含指定的文件存储路径;

响应于所述sql边界检测指令,筛选出所述文件存储路径下的所有sql文件;

提取所述sql文件中的所有sql语句,并进一步从所述sql语句中提取出包含in操作符的sql条件语句,其中,所述提取所述sql文件中的所有sql语句,并进一步从所述sql语句中提取出包含in操作符的sql条件语句的步骤之后,所述方法还包括步骤:解析所述sql条件语句,获取每条sql条件语句对应的id;

根据所述id在所述sql语句中递归查询,以获取与所述sql条件语句匹配的类和行数;

检测所述sql条件语句中每个in操作符对应的参数数量,判断是否存在所述参数数量大于边界阈值的边界问题,并生成相应的判断结果;

基于所述判断结果生成用于提示边界问题的推送内容发送至目标用户,其中,所述基于所述判断结果生成用于提示边界问题的推送内容发送至目标用户的步骤包括:当判断存在所述参数数量大于边界阈值的边界问题时,将对应的存在边界问题的sql条件语句记为异常条件语句;

将所述异常条件语句及获取的与所述异常条件语句匹配的类和行数共同纳入所述推送内容;

在执行所述将对应的存在边界问题的sql条件语句记为异常条件语句的步骤之后,所述方法还包括:将所述异常条件语句中in操作符对应的所有参数值逐个且逐行插入到预设的临时表中,并为每个参数值分别设置区别编号;

根据所述区别编号对应的表字段名,生成用于查询所有参数值的全量查询语句;

接收到执行所述异常条件语句的指令时,触发执行所述全量查询语句对所述临时表进行查询,获得所述异常条件语句中in操作符对应的所有参数值。

2.根据权利要求1所述的查询语句边界问题的检测方法,其特征在于,所述筛选出所述文件存储路径下的所有sql文件的步骤包括:检测所述文件存储路径下的第一级目录中的所有文件,筛选出其中的sql文件;

逐级访问所述第一级目录下的所有文件夹,直至对所述第一级目录下的所有文件夹中的文件完成检测,筛选出其中的所有sql文件。

3.根据权利要求1所述的查询语句边界问题的检测方法,其特征在于,所述提取所述sql文件中的所有sql语句的步骤包括:调用dom4j解析包或mybatis框架;

通过dom4j或mybatis提供的API对所述sql文件执行解析,提取出所述sql文件中的所有sql语句。

4.根据权利要求1所述的查询语句边界问题的检测方法,其特征在于,所述从所述sql语句中提取出包含in操作符的sql条件语句的步骤包括:配置正则表达式;

基于所述正则表达式匹配所述sql语句中包含in操作符的sql条件语句,并提取出匹配到的所述sql条件语句。

5.一种查询语句边界问题的检测装置,其特征在于,所述查询语句边界问题的检测装置用于实现如权利要求1‑4中任意一项所述的查询语句边界问题的检测方法的步骤,所述查询语句边界问题的检测装置,包括:指令接收模块,用于接收sql边界检测指令,所述sql边界检测指令中包含指定的文件存储路径;

指令执行模块,用于响应于所述sql边界检测指令,筛选出所述文件存储路径下的所有sql文件;

语句提取模块,用于提取所述sql文件中的所有sql语句,并进一步从所述sql语句中提取出包含in操作符的sql条件语句;

问题判断模块,用于检测所述sql条件语句中每个in操作符对应的参数数量,判断是否存在所述参数数量大于边界阈值的边界问题,并生成相应的判断结果;

结果发送模块,用于基于所述判断结果生成用于提示边界问题的推送内容发送至目标用户。

6.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1‑4中任意一项所述的查询语句边界问题的检测方法的步骤。

7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1‑4中任意一项所述的查询语句边界问题的检测方法的步骤。