CN108388606A - 一种校验Sql语句中库表字段名的方法以及计算机设备 - Google Patents
一种校验Sql语句中库表字段名的方法以及计算机设备 Download PDFInfo
- Publication number
- CN108388606A CN108388606A CN201810116384.1A CN201810116384A CN108388606A CN 108388606 A CN108388606 A CN 108388606A CN 201810116384 A CN201810116384 A CN 201810116384A CN 108388606 A CN108388606 A CN 108388606A
- Authority
- CN
- China
- Prior art keywords
- name
- database
- table name
- field
- library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
Abstract
本发明提供一种校验Sql语句中库表字段名的方法包括:步骤1、将数据库的元数据读入缓存;步骤2、接收请求参数,并将其中的Sql语句进行解析,得到所需校验的数据;步骤3、将所需校验的数据与元数据进行校验,得到校验结果;本发明还提供一种计算机设备;大大降低了数据库的计算压力。
Description
技术领域
本发明涉及一种校验Sql语句中库表字段名的方法以及计算机设备。
背景技术
目前市场上存在较多的第三方数据库查询平台,第三方数据库查询平台大都是将Sql语句丢到数据库中直接进行校验以及执行,对于Sql语句中的语法以及库表字段对应信息并没有进行提前校验,若是在查询量大的时候,大量的数据库连接以及校验工作会极大的增大了数据库的压力。
发明内容
本发明要解决的技术问题,在于提供一种校验Sql语句中库表字段名的方法以及计算机设备,大大降低了数据库压力。
本发明之一是这样实现的:一种校验Sql语句中库表字段名的方法,包括:
步骤1、将数据库的元数据读入缓存;
步骤2、接收请求参数,并将其中的Sql语句进行解析,得到所需校验的数据;
步骤3、将所需校验的数据与元数据进行校验,得到校验结果。
进一步地,所述元数据包括数据库名、表名以及字段,所述数据库名、表名以及字段为统一大写字母或小写字母。
进一步地,所述步骤2进一步具体为:接收请求参数,并将Sql语句进行解析,若是解析失败,则返回错误信息;否则解析得到所需校验的数据,所述所需校验的数据包括库表名集合以及字段名集合,所述库表名集合包括数据库名以及表名,所述库表名集合以及字段名集合中的元素通过分隔符进行分隔;所述请求参数包括Sql语句以及默认选择的数据库。
进一步地,所述步骤3进一步具体为:
步骤31、从库表名集合中取出数据库名以及表名,若缓存元数据中不存在所述数据库名或表名,则返回错误信息;否则进入步骤32;
步骤32、从字段名集合中取出字段名,若缓存数据中不存在所述字段名,则返回错误信息;否则验证通过。
进一步地,所述步骤3进一步具体为:
根据分隔符对库表名集合进行分割,分割成数组;若数组长度为1,则只有表名,数据库为默认选择的数据库,若默认选择的数据库为空,则返回错误信息;若默认选择的数据库不为空,则该表名对应的数据库为默认选择的数据库;若数组长度大于等于2,则获取数组倒数第二个元素,即为数据库名;获取数据倒数第一个元素,即为表名;
根据数据库名查询缓存元数据,如果未查到,则Sql语句中数据库名错误,返回错误信息;如果查到,则根据该数据库名查询表名,如果表名不存在,则说明表名在该数据库中不存在,返回错误信息;如果表名存在,则进入下一步;
根据分隔符对字段名集合进行分割,分割成数组,如果数组长度为2,则数组第一个元素为表名,第二个元素为字段名,数据库为默认选择的数据库;如果数组长度大于等于3,则数组的倒数第三个元素为库名,倒数第二个元素为表名,倒数第一个元素为字段名;
如果字段名的值为特殊符号*,则表示获取对应表名下的所有字段,则直接校验通过;否则进行下一步;
如果表名为UNKNOWN,则获取库表名集合中的所有字段名,判断所有字段名中是否包含该字段名,如果有包含,则校验通过,如果没有包含,则校验失败,返回错误信息;
如果表名不为UNKNOWN,根据数据库名查询缓存元数据,获取到对应数据库中表的所有字段集合,判断字段集合中是否包含所述字段名,如果包含,则校验通过,否则校验失败。
本发明之二是这样实现的:一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
步骤1、将数据库的元数据读入缓存;
步骤2、接收请求参数,并将其中的Sql语句进行解析,得到所需校验的数据;
步骤3、将所需校验的数据与元数据进行校验,得到校验结果。
进一步地,所述元数据包括数据库名、表名以及字段,所述数据库名、表名以及字段为统一大写字母或小写字母。
进一步地,所述步骤2进一步具体为:接收请求参数,并将Sql语句进行解析,若是解析失败,则返回错误信息;否则解析得到所需校验的数据,所述所需校验的数据包括库表名集合以及字段名集合,所述库表名集合包括数据库名以及表名,所述库表名集合以及字段名集合中的元素通过分隔符进行分隔;所述请求参数包括Sql语句以及默认选择的数据库。
进一步地,所述步骤3进一步具体为:
步骤31、从库表名集合中取出数据库名以及表名,若缓存元数据中不存在所述数据库名或表名,则返回错误信息;否则进入步骤32;
步骤32、从字段名集合中取出字段名,若缓存数据中不存在所述字段名,则返回错误信息;否则验证通过。
进一步地,所述步骤3进一步具体为:
根据分隔符对库表名集合进行分割,分割成数组;若数组长度为1,则只有表名,数据库为默认选择的数据库,若默认选择的数据库为空,则返回错误信息;若默认选择的数据库不为空,则该表名对应的数据库为默认选择的数据库;若数组长度大于等于2,则获取数组倒数第二个元素,即为数据库名;获取数据倒数第一个元素,即为表名;
根据数据库名查询缓存元数据,如果未查到,则Sql语句中数据库名错误,返回错误信息;如果查到,则根据该数据库名查询表名,如果表名不存在,则说明表名在该数据库中不存在,返回错误信息;如果表名存在,则进入下一步;
根据分隔符对字段名集合进行分割,分割成数组,如果数组长度为2,则数组第一个元素为表名,第二个元素为字段名,数据库为默认选择的数据库;如果数组长度大于等于3,则数组的倒数第三个元素为库名,倒数第二个元素为表名,倒数第一个元素为字段名;
如果字段名的值为特殊符号*,则表示获取对应表名下的所有字段,则直接校验通过;否则进行下一步;
如果表名为UNKNOWN,则获取库表名集合中的所有字段名,判断所有字段名中是否包含该字段名,如果有包含,则校验通过,如果没有包含,则校验失败,返回错误信息;
如果表名不为UNKNOWN,根据数据库名查询缓存元数据,获取到对应数据库中表的所有字段集合,判断字段集合中是否包含所述字段名,如果包含,则校验通过,否则校验失败。
本发明具有如下优点:本发明一种校验Sql语句中库表字段名的方法以及计算机设备,对SQL语句的语法以及库表字段对应信息进行提前校验,如果库表字段名称错误或者归属信息有错误直接返回错误信息,而不用再将查询提交到数据库,可以极大的减轻创建销毁数据库连接以及校验计算的压力。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法执行流程图。
具体实施方式
如图1所示,本发明之一是这样实现的:一种校验Sql语句中库表字段名的方法,包括:
步骤1、将数据库的元数据读入缓存,所述元数据包括数据库名、表名以及字段,所述数据库名、表名以及字段为统一大写字母或小写字母;
步骤2、接收请求参数,并将Sql语句进行解析,若是解析失败,则返回错误信息;否则解析得到所需校验的数据,所述所需校验的数据包括库表名集合以及字段名集合,所述库表名集合包括数据库名以及表名,所述库表名集合以及字段名集合中的元素通过分隔符进行分隔;所述请求参数包括Sql语句以及默认选择的数据库;
步骤3、根据分隔符对库表名集合进行分割,分割成数组;若数组长度为1,则只有表名,数据库为默认选择的数据库,若默认选择的数据库为空,则返回错误信息;若默认选择的数据库不为空,则该表名对应的数据库为默认选择的数据库;若数组长度大于等于2,则获取数组倒数第二个元素,即为数据库名;获取数据倒数第一个元素,即为表名;
根据数据库名查询缓存元数据,如果未查到,则Sql语句中数据库名错误,返回错误信息;如果查到,则根据该数据库名查询表名,如果表名不存在,则说明表名在该数据库中不存在,返回错误信息;如果表名存在,则进入下一步;
根据分隔符对字段名集合进行分割,分割成数组,如果数组长度为2,则数组第一个元素为表名,第二个元素为字段名,数据库为默认选择的数据库;如果数组长度大于等于3,则数组的倒数第三个元素为库名,倒数第二个元素为表名,倒数第一个元素为字段名;
如果字段名的值为特殊符号*,则表示获取对应表名下的所有字段,则直接校验通过;否则进行下一步;
如果表名为UNKNOWN,则获取库表名集合中的所有字段名,判断所有字段名中是否包含该字段名,如果有包含,则校验通过,如果没有包含,则校验失败,返回错误信息;
如果表名不为UNKNOWN,根据数据库名查询缓存元数据,获取到对应数据库中表的所有字段集合,判断字段集合中是否包含所述字段名,如果包含,则校验通过,否则校验失败。
本发明计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
步骤1、将数据库的元数据读入缓存,所述元数据包括数据库名、表名以及字段,所述数据库名、表名以及字段为统一大写字母或小写字母;
步骤2、接收请求参数,并将Sql语句进行解析,若是解析失败,则返回错误信息;否则解析得到所需校验的数据,所述所需校验的数据包括库表名集合以及字段名集合,所述库表名集合包括数据库名以及表名,所述库表名集合以及字段名集合中的元素通过分隔符进行分隔;所述请求参数包括Sql语句以及默认选择的数据库;
步骤3、根据分隔符对库表名集合进行分割,分割成数组;若数组长度为1,则只有表名,数据库为默认选择的数据库,若默认选择的数据库为空,则返回错误信息;若默认选择的数据库不为空,则该表名对应的数据库为默认选择的数据库;若数组长度大于等于2,则获取数组倒数第二个元素,即为数据库名;获取数据倒数第一个元素,即为表名;
根据数据库名查询缓存元数据,如果未查到,则Sql语句中数据库名错误,返回错误信息;如果查到,则根据该数据库名查询表名,如果表名不存在,则说明表名在该数据库中不存在,返回错误信息;如果表名存在,则进入下一步;
根据分隔符对字段名集合进行分割,分割成数组,如果数组长度为2,则数组第一个元素为表名,第二个元素为字段名,数据库为默认选择的数据库;如果数组长度大于等于3,则数组的倒数第三个元素为库名,倒数第二个元素为表名,倒数第一个元素为字段名;
如果字段名的值为特殊符号*,则表示获取对应表名下的所有字段,则直接校验通过;否则进行下一步;
如果表名为UNKNOWN,则获取库表名集合中的所有字段名,判断所有字段名中是否包含该字段名,如果有包含,则校验通过,如果没有包含,则校验失败,返回错误信息;
如果表名不为UNKNOWN,根据数据库名查询缓存元数据,获取到对应数据库中表的所有字段集合,判断字段集合中是否包含所述字段名,如果包含,则校验通过,否则校验失败。
本发明一种具体实施方式:
方案结构:
数据库、缓存、Sql解析、Sql校验、服务端
主要步骤:
一)、系统初始化
1、系统启动的时候进行初始化,将数据库的元数据信息(库、表、字段信息)读入缓存中,缓存格式如下:
数据库元数据缓存信息存入一个<key,value>存储结构map1中,map1中key是数据库名称,value是该数据库中包含的所有表信息的<key,value>存储结构map2;map2中key是表名,value是该表包含的所有字段名的集合<key>存储结构set1。其中数据库名称跟表名跟字段名都统一转成大写或者小写。
二)、Sql解析
1、前端发起执行Sql的请求,请求参数包括:
A:需要执行的Sql语句
B:默认选择的数据库SelectedDatabase
服务端接收参数,然后先将Sql语句统一转成大写或者小写(跟元数据中缓存的库表字段名大小写一致),同时使用Sql解析框架(比如alibaba druid)对Sql进行解析,如果解析失败,则表示Sql语句不合法,返回错误信息。否则解析出库表字段信息集合,集合格式如下:
2.1、库表名的集合TableSet,例如{C1.B1.A1,B2.A2,A3},其中C.B.A表示用户名+分隔符(比如“.”号)+数据库名+分隔符+表名,其中C不一定是用户名,也可以是其他信息,同时也C前面允许有更多信息,比如D.C.B.A。另外B以及B之前的数据不一定都有,比如B.A或者A。
2.2、字段名的集合ColumnSet,例如{C1.B1.A1.T1,B2.A2.T2,A3.T3},其C.B.A的意义跟2.1中的一致,T表示字段名称,其中当A不等于“UNKNOWN”(即未知,用来标识字段名称T未确定归属那张表,可以用任意字符串替代,但是大小写格式必须于元数据中的缓存大小写相反)的时候,{C1.B1.A1.,B2.A2,A3},必须是库表名集合TableSet的子集。
三)、Sql库表字段信息校验
校验模块根据获取前面的相关信息进行校验:元数据缓存、默认选择的数据库SelectedDatabase、库表名的集合TableSet、字段名的集合ColumnSet。
1、校验库表信息,对库表名的集合TableSet进行迭代,对集合中的每个库表名按照如下操作进行校验:
1.1、根据分隔符对字符串进行分割,分割成数组,比如C.B.A分割成[C,B,A]数组;B.A分割成[B,A]数组。对数组长度进行判断,根据数组长度不同做如下不同处理。我们设两个中间变量,一个是库名DbName,一个是表名TableName。
1.1.1、如果数组长度为1,即只有表名A,则表示查询的A表属于默认选择的数据库SelectedDatabase,如果SelectedDatabase为空值,则说明不知道A表属于哪个库,则返回错误信息。如果SelectedDatabase不为空,则库名DbName的值即为SelectedDatabase的值,表名TableName的值即为A的值,然后进行下一步操作。
1.1.2、如果数组长度为2或者大于2,则获取数组倒数第二个元素,即为库名,将库名赋值给DbName,获取数组倒数第一个元素,即为表名,将表名赋值给TableName。
1.2、根据库名DbName查询元数据缓存map1,如果未查到值,说明Sql语句中库名称错误,返回错误信息;如果查到值,则可以获取到该库的表缓存map2,然后在map2中查询表名TableName,如果表名不存在,则说明表TableName在数据库DbName中不存在,返回错误信息,如果存在,则校验通过。
2、第1步库表名称校验通过后,再校验字段信息,对字段名集合ColumnSet进行迭代,对集合中的每个字段名按照如下操作进行校验:
2.1、根据分隔符对字符串进行分割,分割成数组,比如C.B.A.T分割成[C,B,A,T]数组;A.T分割成[A,T]数组。对数组长度进行判断,根据数组长度不同做如下不同处理。分割出来的数组长度一定大于等于2。我们设三个中间变量,一个是库名DbName,一个是表名TableName,一个是字段名ColumnName。
2.1.1、如果数组长度为2,则数组第一个元素为表名,赋值给TableName,第二个元素为字段名,赋值给ColumnName。DbName的值则为默认选择的数据库SelectedDatabase的值。注意:因为第1步已经校验通过才会进行第2步的校验,所以此时如果存在数组长度为2的情况,则SelectedDatabase一定不会为空。
2.1.2、如果数组长度大于等于3,则数组的倒数第三个元素为库名,赋值给DbName,倒数第二个元素为表名,赋值给TableName,倒数第一个元素为字段名,赋值给ColumnName。
2.2、对DbName、TableName、ColumnName进行如下校验:
2.2.1、先判断ColumnName,如果ColumnName的值为特殊符号“*”,则表示获取TableName下的所有字段,此时直接校验通过;否则进行下一步校验。
2.2.2、判断TableName是否是为“UNKNOWN”(UNKNOWN的定义见:二)Sql解析2.2),如果不是,则进行下一步校验;如果是,则获取TableSet中的所有字段名,判断所有字段名中是否包含ColumnName,如果有包含,则校验通过,如果没有包含,则校验失败,返回错误信息。
2.2.3、根据库名DbName查询元数据缓存map1,获取到该库的表缓存map2,然后在map2中查询表名TableName,获取表的所有字段集合Set1,判断Set1中是否包含ColumnName,如果包含,则校验通过,否则校验失败。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (10)
1.一种校验Sql语句中库表字段名的方法,其特征在于:包括:
步骤1、将数据库的元数据读入缓存;
步骤2、接收请求参数,并将其中的Sql语句进行解析,得到所需校验的数据;
步骤3、将所需校验的数据与元数据进行校验,得到校验结果。
2.根据权利要求1所述的一种校验Sql语句中库表字段名的方法,其特征在于:所述元数据包括数据库名、表名以及字段,所述数据库名、表名以及字段为统一大写字母或小写字母。
3.根据权利要求1所述的一种校验Sql语句中库表字段名的方法,其特征在于:所述步骤2进一步具体为:接收请求参数,并将Sql语句进行解析,若是解析失败,则返回错误信息;否则解析得到所需校验的数据,所述所需校验的数据包括库表名集合以及字段名集合,所述库表名集合包括数据库名以及表名,所述库表名集合以及字段名集合中的元素通过分隔符进行分隔;所述请求参数包括Sql语句以及默认选择的数据库。
4.根据权利要求3所述的一种校验Sql语句中库表字段名的方法,其特征在于:所述步骤3进一步具体为:
步骤31、从库表名集合中取出数据库名以及表名,若缓存元数据中不存在所述数据库名或表名,则返回错误信息;否则进入步骤32;
步骤32、从字段名集合中取出字段名,若缓存数据中不存在所述字段名,则返回错误信息;否则验证通过。
5.根据权利要求4所述的一种校验Sql语句中库表字段名的方法,其特征在于:所述步骤3进一步具体为:
根据分隔符对库表名集合进行分割,分割成数组;若数组长度为1,则只有表名,数据库为默认选择的数据库,若默认选择的数据库为空,则返回错误信息;若默认选择的数据库不为空,则该表名对应的数据库为默认选择的数据库;若数组长度大于等于2,则获取数组倒数第二个元素,即为数据库名;获取数据倒数第一个元素,即为表名;
根据数据库名查询缓存元数据,如果未查到,则Sql语句中数据库名错误,返回错误信息;如果查到,则根据该数据库名查询表名,如果表名不存在,则说明表名在该数据库中不存在,返回错误信息;如果表名存在,则进入下一步;
根据分隔符对字段名集合进行分割,分割成数组,如果数组长度为2,则数组第一个元素为表名,第二个元素为字段名,数据库为默认选择的数据库;如果数组长度大于等于3,则数组的倒数第三个元素为库名,倒数第二个元素为表名,倒数第一个元素为字段名;
如果字段名的值为特殊符号*,则表示获取对应表名下的所有字段,则直接校验通过;否则进行下一步;
如果表名为UNKNOWN,则获取库表名集合中的所有字段名,判断所有字段名中是否包含该字段名,如果有包含,则校验通过,如果没有包含,则校验失败,返回错误信息;
如果表名不为UNKNOWN,根据数据库名查询缓存元数据,获取到对应数据库中表的所有字段集合,判断字段集合中是否包含所述字段名,如果包含,则校验通过,否则校验失败。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
步骤1、将数据库的元数据读入缓存;
步骤2、接收请求参数,并将其中的Sql语句进行解析,得到所需校验的数据;
步骤3、将所需校验的数据与元数据进行校验,得到校验结果。
7.根据权利要求1所述的一种计算机设备,其特征在于:所述元数据包括数据库名、表名以及字段,所述数据库名、表名以及字段为统一大写字母或小写字母。
8.根据权利要求1所述的一种计算机设备,其特征在于:所述步骤2进一步具体为:接收请求参数,并将Sql语句进行解析,若是解析失败,则返回错误信息;否则解析得到所需校验的数据,所述所需校验的数据包括库表名集合以及字段名集合,所述库表名集合包括数据库名以及表名,所述库表名集合以及字段名集合中的元素通过分隔符进行分隔;所述请求参数包括Sql语句以及默认选择的数据库。
9.根据权利要求8所述的一种计算机设备,其特征在于:所述步骤3进一步具体为:
步骤31、从库表名集合中取出数据库名以及表名,若缓存元数据中不存在所述数据库名或表名,则返回错误信息;否则进入步骤32;
步骤32、从字段名集合中取出字段名,若缓存数据中不存在所述字段名,则返回错误信息;否则验证通过。
10.根据权利要求9所述的一种计算机设备,其特征在于:所述步骤3进一步具体为:
根据分隔符对库表名集合进行分割,分割成数组;若数组长度为1,则只有表名,数据库为默认选择的数据库,若默认选择的数据库为空,则返回错误信息;若默认选择的数据库不为空,则该表名对应的数据库为默认选择的数据库;若数组长度大于等于2,则获取数组倒数第二个元素,即为数据库名;获取数据倒数第一个元素,即为表名;
根据数据库名查询缓存元数据,如果未查到,则Sql语句中数据库名错误,返回错误信息;如果查到,则根据该数据库名查询表名,如果表名不存在,则说明表名在该数据库中不存在,返回错误信息;如果表名存在,则进入下一步;
根据分隔符对字段名集合进行分割,分割成数组,如果数组长度为2,则数组第一个元素为表名,第二个元素为字段名,数据库为默认选择的数据库;如果数组长度大于等于3,则数组的倒数第三个元素为库名,倒数第二个元素为表名,倒数第一个元素为字段名;
如果字段名的值为特殊符号*,则表示获取对应表名下的所有字段,则直接校验通过;否则进行下一步;
如果表名为UNKNOWN,则获取库表名集合中的所有字段名,判断所有字段名中是否包含该字段名,如果有包含,则校验通过,如果没有包含,则校验失败,返回错误信息;
如果表名不为UNKNOWN,根据数据库名查询缓存元数据,获取到对应数据库中表的所有字段集合,判断字段集合中是否包含所述字段名,如果包含,则校验通过,否则校验失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810116384.1A CN108388606B (zh) | 2018-02-06 | 2018-02-06 | 一种校验Sql语句中库表字段名的方法以及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810116384.1A CN108388606B (zh) | 2018-02-06 | 2018-02-06 | 一种校验Sql语句中库表字段名的方法以及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108388606A true CN108388606A (zh) | 2018-08-10 |
CN108388606B CN108388606B (zh) | 2022-01-25 |
Family
ID=63075114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810116384.1A Active CN108388606B (zh) | 2018-02-06 | 2018-02-06 | 一种校验Sql语句中库表字段名的方法以及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108388606B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109444726A (zh) * | 2018-10-12 | 2019-03-08 | 盛科网络(苏州)有限公司 | 测试激励行为一致性的检查方法及检查装置 |
CN110389941A (zh) * | 2019-06-19 | 2019-10-29 | 平安国际智慧城市科技股份有限公司 | 数据库校验方法、装置、设备及存储介质 |
CN111367936A (zh) * | 2020-02-28 | 2020-07-03 | 中国工商银行股份有限公司 | 一种结构化查询语言语法的离线校验方法及装置 |
WO2021042532A1 (zh) * | 2019-09-05 | 2021-03-11 | 平安科技(深圳)有限公司 | 数据库信息分析方法、装置、计算机装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788992A (zh) * | 2009-05-06 | 2010-07-28 | 厦门东南融通系统工程有限公司 | 一种数据库查询语句的转换方法和转换系统 |
CN102033912A (zh) * | 2010-11-25 | 2011-04-27 | 北京北纬点易信息技术有限公司 | 一种分布式数据库访问方法及系统 |
CN102053961A (zh) * | 2009-10-27 | 2011-05-11 | 中兴通讯股份有限公司 | Sql语句的检验方法、装置及提高数据库可靠性的系统 |
CN103530327A (zh) * | 2013-09-25 | 2014-01-22 | 清华大学深圳研究生院 | 一种从非关系型数据库到关系型数据库的数据迁移方法 |
US20140201838A1 (en) * | 2012-01-31 | 2014-07-17 | Db Networks, Inc. | Systems and methods for detecting and mitigating threats to a structured data storage system |
CN104123288A (zh) * | 2013-04-24 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN106934062A (zh) * | 2017-03-28 | 2017-07-07 | 广东工业大学 | 一种查询elasticsearch的实现方法及系统 |
-
2018
- 2018-02-06 CN CN201810116384.1A patent/CN108388606B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788992A (zh) * | 2009-05-06 | 2010-07-28 | 厦门东南融通系统工程有限公司 | 一种数据库查询语句的转换方法和转换系统 |
CN102053961A (zh) * | 2009-10-27 | 2011-05-11 | 中兴通讯股份有限公司 | Sql语句的检验方法、装置及提高数据库可靠性的系统 |
CN102033912A (zh) * | 2010-11-25 | 2011-04-27 | 北京北纬点易信息技术有限公司 | 一种分布式数据库访问方法及系统 |
US20140201838A1 (en) * | 2012-01-31 | 2014-07-17 | Db Networks, Inc. | Systems and methods for detecting and mitigating threats to a structured data storage system |
CN104123288A (zh) * | 2013-04-24 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN103530327A (zh) * | 2013-09-25 | 2014-01-22 | 清华大学深圳研究生院 | 一种从非关系型数据库到关系型数据库的数据迁移方法 |
CN106934062A (zh) * | 2017-03-28 | 2017-07-07 | 广东工业大学 | 一种查询elasticsearch的实现方法及系统 |
Non-Patent Citations (4)
Title |
---|
LAMBERT NTAGWABIRA等: "Use of Query tokenization to detect and prevent SQL injection attacks", 《2010 3RD INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND INFORMATION TECHNOLOGY》 * |
杜永友: "构建基于工作流引擎和元数据驱动的数据仓库ETL工具", 《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》 * |
王晔: "基于HTTP反向代理的Web安全网关技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
龙世滔: "空间元数据服务器实现技术研究", 《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109444726A (zh) * | 2018-10-12 | 2019-03-08 | 盛科网络(苏州)有限公司 | 测试激励行为一致性的检查方法及检查装置 |
CN109444726B (zh) * | 2018-10-12 | 2021-01-26 | 盛科网络(苏州)有限公司 | 测试激励行为一致性的检查方法及检查装置 |
CN110389941A (zh) * | 2019-06-19 | 2019-10-29 | 平安国际智慧城市科技股份有限公司 | 数据库校验方法、装置、设备及存储介质 |
CN110389941B (zh) * | 2019-06-19 | 2021-01-05 | 平安国际智慧城市科技股份有限公司 | 数据库校验方法、装置、设备及存储介质 |
WO2021042532A1 (zh) * | 2019-09-05 | 2021-03-11 | 平安科技(深圳)有限公司 | 数据库信息分析方法、装置、计算机装置及存储介质 |
CN111367936A (zh) * | 2020-02-28 | 2020-07-03 | 中国工商银行股份有限公司 | 一种结构化查询语言语法的离线校验方法及装置 |
CN111367936B (zh) * | 2020-02-28 | 2023-08-22 | 中国工商银行股份有限公司 | 一种结构化查询语言语法的离线校验方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108388606B (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10585683B2 (en) | Defining application programming interfaces (APIs) using object schemas | |
CN108388606A (zh) | 一种校验Sql语句中库表字段名的方法以及计算机设备 | |
CN102227725B (zh) | 用于匹配实体的系统和方法 | |
EP2244418B1 (en) | Database security monitoring method, device and system | |
US10866828B2 (en) | Extending object-schema-based application programming interfaces (APIs) | |
CN103838837B (zh) | 基于语义模板的遥感元数据集成方法 | |
US20040153459A1 (en) | System and method for transferring a database from one location to another over a network | |
US7703006B2 (en) | System and method of accelerating document processing | |
CN103559444A (zh) | 一种sql注入检测方法及装置 | |
US10043138B2 (en) | Metadata representation and storage | |
CA2461854A1 (en) | Mechanism for mapping xml schemas to object-relational database systems | |
CN102164050A (zh) | 日志解析方法及日志解析节点设备 | |
KR20150042877A (ko) | 레코드 포맷 정보의 관리 | |
JP2008052662A (ja) | 構造化文書管理システム及びプログラム | |
CN103488759A (zh) | 一种根据关键词搜索应用程序的方法和装置 | |
US8489631B2 (en) | Distributing a query | |
US20160132509A1 (en) | Complex query handling | |
CN106209431A (zh) | 一种告警关联方法及网管系统 | |
US9053207B2 (en) | Adaptive query expression builder for an on-demand data service | |
CN104320312A (zh) | 网络应用安全测试工具及模糊测试用例生成方法和系统 | |
CN106126224A (zh) | 一种生成程序对象的工具、系统和方法 | |
US6490591B1 (en) | Apparatus and method for storing complex structures by conversion of arrays to strings | |
CN114090671A (zh) | 数据导入方法、装置、电子设备及存储介质 | |
US20090171936A1 (en) | System, Method, and Computer Program Product for Accelerating Like Conditions | |
CN113868252A (zh) | 数据库模式匹配方法及装置、sql查询语句生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 350000 21 / F, building 5, f District, Fuzhou Software Park, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province Applicant after: FUJIAN SINOREGAL SOFTWARE CO.,LTD. Address before: Floor 20-21, building 5, area F, Fuzhou Software Park, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province 350000 Applicant before: FUJIAN SINOREGAL SOFTWARE CO.,LTD. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |