[发明专利]一种校验Sql语句中库表字段名的方法以及计算机设备有效
申请号: | 201810116384.1 | 申请日: | 2018-02-06 |
公开(公告)号: | CN108388606B | 公开(公告)日: | 2022-01-25 |
发明(设计)人: | 林传文 | 申请(专利权)人: | 福建星瑞格软件有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455 |
代理公司: | 福州市鼓楼区京华专利事务所(普通合伙) 35212 | 代理人: | 林晓琴 |
地址: | 350000 福建省福州市鼓楼*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 校验 sql 语句 表字 段名 方法 以及 计算机 设备 | ||
1.一种校验Sql语句中库表字段名的方法,其特征在于:包括:
步骤1、将数据库的元数据读入缓存;
步骤2、接收请求参数,并将Sql语句进行解析,若是解析失败,则返回错误信息;否则解析得到所需校验的数据,所述所需校验的数据包括库表名集合以及字段名集合,所述库表名集合包括数据库名以及表名,所述库表名集合以及字段名集合中的元素通过分隔符进行分隔;所述请求参数包括Sql语句以及默认选择的数据库;
步骤3、根据分隔符对库表名集合进行分割,分割成数组;若数组长度为1,则只有表名,数据库为默认选择的数据库,若默认选择的数据库为空,则返回错误信息;若默认选择的数据库不为空,则该表名对应的数据库为默认选择的数据库;若数组长度大于等于2,则获取数组倒数第二个元素,即为数据库名;获取数据倒数第一个元素,即为表名;
根据数据库名查询缓存元数据,如果未查到,则Sql语句中数据库名错误,返回错误信息;如果查到,则根据该数据库名查询表名,如果表名不存在,则说明表名在该数据库中不存在,返回错误信息;如果表名存在,则进入下一步;
根据分隔符对字段名集合进行分割,分割成数组,如果数组长度为2,则数组第一个元素为表名,第二个元素为字段名,数据库为默认选择的数据库;如果数组长度大于等于3,则数组的倒数第三个元素为库名,倒数第二个元素为表名,倒数第一个元素为字段名;
如果字段名的值为特殊符号*,则表示获取对应表名下的所有字段,则直接校验通过;否则进行下一步;
如果表名为UNKNOWN,则获取库表名集合中的所有字段名,判断所有字段名中是否包含该字段名,如果有包含,则校验通过,如果没有包含,则校验失败,返回错误信息;
如果表名不为UNKNOWN,根据数据库名查询缓存元数据,获取到对应数据库中表的所有字段集合,判断字段集合中是否包含所述字段名,如果包含,则校验通过,否则校验失败。
2.根据权利要求1所述的一种校验Sql语句中库表字段名的方法,其特征在于:所述元数据包括数据库名、表名以及字段,所述数据库名、表名以及字段为统一大写字母或小写字母。
3.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
步骤1、将数据库的元数据读入缓存;
步骤2、接收请求参数,并将Sql语句进行解析,若是解析失败,则返回错误信息;否则解析得到所需校验的数据,所述所需校验的数据包括库表名集合以及字段名集合,所述库表名集合包括数据库名以及表名,所述库表名集合以及字段名集合中的元素通过分隔符进行分隔;所述请求参数包括Sql语句以及默认选择的数据库;
步骤3、根据分隔符对库表名集合进行分割,分割成数组;若数组长度为1,则只有表名,数据库为默认选择的数据库,若默认选择的数据库为空,则返回错误信息;若默认选择的数据库不为空,则该表名对应的数据库为默认选择的数据库;若数组长度大于等于2,则获取数组倒数第二个元素,即为数据库名;获取数据倒数第一个元素,即为表名;
根据数据库名查询缓存元数据,如果未查到,则Sql语句中数据库名错误,返回错误信息;如果查到,则根据该数据库名查询表名,如果表名不存在,则说明表名在该数据库中不存在,返回错误信息;如果表名存在,则进入下一步;
根据分隔符对字段名集合进行分割,分割成数组,如果数组长度为2,则数组第一个元素为表名,第二个元素为字段名,数据库为默认选择的数据库;如果数组长度大于等于3,则数组的倒数第三个元素为库名,倒数第二个元素为表名,倒数第一个元素为字段名;
如果字段名的值为特殊符号*,则表示获取对应表名下的所有字段,则直接校验通过;否则进行下一步;
如果表名为UNKNOWN,则获取库表名集合中的所有字段名,判断所有字段名中是否包含该字段名,如果有包含,则校验通过,如果没有包含,则校验失败,返回错误信息;
如果表名不为UNKNOWN,根据数据库名查询缓存元数据,获取到对应数据库中表的所有字段集合,判断字段集合中是否包含所述字段名,如果包含,则校验通过,否则校验失败。
4.根据权利要求3所述的一种计算机设备,其特征在于:所述元数据包括数据库名、表名以及字段,所述数据库名、表名以及字段为统一大写字母或小写字母。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星瑞格软件有限公司,未经福建星瑞格软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810116384.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于物联网的大数据分析平台
- 下一篇:一种页面显示方法和装置