CN108388606B - 一种校验Sql语句中库表字段名的方法以及计算机设备 - Google Patents

一种校验Sql语句中库表字段名的方法以及计算机设备 Download PDF

Info

Publication number
CN108388606B
CN108388606B CN201810116384.1A CN201810116384A CN108388606B CN 108388606 B CN108388606 B CN 108388606B CN 201810116384 A CN201810116384 A CN 201810116384A CN 108388606 B CN108388606 B CN 108388606B
Authority
CN
China
Prior art keywords
database
name
field
table name
array
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.)
Active
Application number
CN201810116384.1A
Other languages
English (en)
Other versions
CN108388606A (zh
Inventor
林传文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Sinoregal Software Co ltd
Original Assignee
Fujian Sinoregal Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Sinoregal Software Co ltd filed Critical Fujian Sinoregal Software Co ltd
Priority to CN201810116384.1A priority Critical patent/CN108388606B/zh
Publication of CN108388606A publication Critical patent/CN108388606A/zh
Application granted granted Critical
Publication of CN108388606B publication Critical patent/CN108388606B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations

Abstract

本发明提供一种校验Sql语句中库表字段名的方法包括:步骤1、将数据库的元数据读入缓存;步骤2、接收请求参数,并将其中的Sql语句进行解析,得到所需校验的数据;步骤3、将所需校验的数据与元数据进行校验,得到校验结果;本发明还提供一种计算机设备;大大降低了数据库的计算压力。

Description

一种校验Sql语句中库表字段名的方法以及计算机设备
技术领域
本发明涉及一种校验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 (4)

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所述的一种计算机设备,其特征在于:所述元数据包括数据库名、表名以及字段,所述数据库名、表名以及字段为统一大写字母或小写字母。
CN201810116384.1A 2018-02-06 2018-02-06 一种校验Sql语句中库表字段名的方法以及计算机设备 Active CN108388606B (zh)

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 CN108388606A (zh) 2018-08-10
CN108388606B true 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)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109444726B (zh) * 2018-10-12 2021-01-26 盛科网络(苏州)有限公司 测试激励行为一致性的检查方法及检查装置
CN110389941B (zh) * 2019-06-19 2021-01-05 平安国际智慧城市科技股份有限公司 数据库校验方法、装置、设备及存储介质
CN110737642B (zh) * 2019-09-05 2022-09-02 平安科技(深圳)有限公司 数据库信息分析方法、装置、计算机装置及存储介质
CN111367936B (zh) * 2020-02-28 2023-08-22 中国工商银行股份有限公司 一种结构化查询语言语法的离线校验方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
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 清华大学深圳研究生院 一种从非关系型数据库到关系型数据库的数据迁移方法
CN104123288A (zh) * 2013-04-24 2014-10-29 阿里巴巴集团控股有限公司 一种数据查询方法及装置
CN106934062A (zh) * 2017-03-28 2017-07-07 广东工业大学 一种查询elasticsearch的实现方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105122727A (zh) * 2013-01-11 2015-12-02 Db网络公司 用于检测并减轻对结构化数据存储系统的威胁的系统和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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 北京北纬点易信息技术有限公司 一种分布式数据库访问方法及系统
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)

* Cited by examiner, † Cited by third party
Title
Use of Query tokenization to detect and prevent SQL injection attacks;Lambert Ntagwabira等;《2010 3rd International Conference on Computer Science and Information Technology》;20100907;438-440 *
基于HTTP反向代理的Web安全网关技术研究;王晔;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170215(第2期);I139-184 *
构建基于工作流引擎和元数据驱动的数据仓库ETL工具;杜永友;《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》;20050315(第1期);I138-479 *
空间元数据服务器实现技术研究;龙世滔;《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》;20050715(第3期);I137-34 *

Also Published As

Publication number Publication date
CN108388606A (zh) 2018-08-10

Similar Documents

Publication Publication Date Title
CN108388606B (zh) 一种校验Sql语句中库表字段名的方法以及计算机设备
WO2021088385A1 (zh) 一种在线日志解析方法、系统及其电子终端设备
CN102682090B (zh) 一种基于聚合词树的敏感词匹配处理系统及方法
US8782609B2 (en) Test failure bucketing
CN111177184A (zh) 基于自然语言的结构化查询语言转换方法、及其相关设备
CN111176996A (zh) 测试用例生成方法、装置、计算机设备及存储介质
JP2010501096A (ja) ラッパー生成およびテンプレート検出の協同最適化
CN110688544A (zh) 一种查询数据库的方法、设备及存储介质
WO2022227314A1 (zh) 动态同步测试方法、装置、设备及存储介质
CN107016019A (zh) 数据库索引创建方法及装置
CN113220782A (zh) 多元测试数据源生成方法、装置、设备及介质
JP2007537515A (ja) 情報を取り出すためのシステムと方法および情報を保存するためのシステムと方法
US6490591B1 (en) Apparatus and method for storing complex structures by conversion of arrays to strings
US20090171936A1 (en) System, Method, and Computer Program Product for Accelerating Like Conditions
CN113961768B (zh) 敏感词检测方法、装置、计算机设备和存储介质
CN114090671A (zh) 数据导入方法、装置、电子设备及存储介质
US8954438B1 (en) Structured metadata extraction
CN112231407A (zh) PostgreSQL数据库的DDL同步方法、装置、设备和介质
CN106570095B (zh) 一种xml数据的操作方法及设备
CN116226170A (zh) 一种数据库语句转换方法、装置、电子设备及存储介质
CN115061908A (zh) 缺陷代码的定位方法、装置、存储介质及计算机设备
CN105138364B (zh) 一种终端系统升级的方法及装置
CN111414519A (zh) 一种信息处理方法、装置、计算机系统及可读存储介质
CN111177506A (zh) 一种基于大数据的分类存储方法及系统
US11947530B2 (en) Methods and systems to automatically generate search queries from software documents to validate software component search engines

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