CN101706810A - 一种数据库查询方法及装置 - Google Patents
一种数据库查询方法及装置 Download PDFInfo
- Publication number
- CN101706810A CN101706810A CN200910238254A CN200910238254A CN101706810A CN 101706810 A CN101706810 A CN 101706810A CN 200910238254 A CN200910238254 A CN 200910238254A CN 200910238254 A CN200910238254 A CN 200910238254A CN 101706810 A CN101706810 A CN 101706810A
- Authority
- CN
- China
- Prior art keywords
- sql
- target database
- database
- identification information
- parameter
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据库查询方法及装置,所述数据库查询方法,具体包括:接收对某一类型的目标数据库查询的第一结构化查询语言SQL;根据预置的SQL处理类,将所述第一SQL转换为第二SQL;应用所述第二SQL进行所述目标数据库的查询。应用本发明提供的数据库查询方法,使用很小的代码开发量或修改量就能够实现某一SQL到另一SQL的转换,从而实现对不同数据库类型的支持。本发明提供的数据库查询方法以较低的开发维护成本,开发出同时适合多种数据库类型应用的系统,实现对多种数据库类型的支持,而且,不会出现由于使用开发框架所带来的系统性能的降低。
Description
技术领域
本发明涉及数据库技术领域,特别是涉及一种数据库查询方法及装置。
背景技术
SQL(Structured Query Language,结构化查询语言)是专为数据库而建立的操作命令集,是一种数据库语言。SQL的主要功能就是同各种数据库建立联系,使不同类型的数据库之间进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。在使用SQL时,只需要发出“做什么”的命令,而不需要考虑“怎么做”。SQL语句可以用来执行对数据库的各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL语言标准。
现有技术中,对系统中的不同类型数据库进行查询时,采用了条件判断的方式来解决对不同类型数据库的SQL查询支持,即为每一种系统中存在的不同数据库类型分别作对应的SQL处理。随着系统的不断增大,数据库的类型也逐渐增多,SQL查询的应用场景也越来越复杂,如果采用能支持不同数据库的开发框架(例如Hibernate)对数据库进行查询,虽然能针对不同类型的数据库进行查询,但是该开发框架需要大量的开发和维护成本,并且当系统中数据库的数据量很大时,就会降低系统的性能。
发明内容
本发明所要解决的技术问题是,提供一种数据库查询方法,实现以较低的开发维护成本开发出支持不同类型数据库的SQL查询的系统,并且不会降低系统的性能。
本发明的另一个目的是将上述构思应用于具体的应用环境中,提供一种数据匹配装置,从而保证该方法的实现和应用。
为解决上述技术问题,本发明实施例提供了一种数据库查询方法,具体包括:
接收对某一类型的目标数据库查询的第一结构化查询语言SQL;
根据预置的SQL处理类,将所述第一SQL转换为第二SQL;
应用所述第二SQL进行所述目标数据库的查询。
在所述接收某一类型的目标数据库查询的第一结构化查询语言SQL之前,还包括:
在新建的SQL处理类中设置对当前SQL的处理方式。
所述对当前SQL的处理方式,具体为:
接收第一参数,所述第一参数为目标数据库的标识信息的连接;
返回第二参数,所述第二参数为表示对当前SQL处理结果的字符串。
所述根据预置的SQL处理类,将所述第一SQL转换为第二SQL,具体包括:
根据预置的SQL处理类,确定即将查询的目标数据库的标识信息;
解析所述第一SQL,得到该第一SQL的最小语法元素;
根据所述目标数据库的标识信息,将所述第一SQL的最小语法元素重新组合为第二SQL。
所述应用所述第二SQL进行目标数据库的查询,具体包括:
从所述第二SQL获取目标数据库的标识信息,以定位目标数据库;
根据第二SQL对目标数据库进行相应的存取、修改、删除或管理操作。
本发明实施例还提供了一种数据库查询装置,具体包括:
接收单元,用于接收对某一类型的目标数据库查询的第一SQL;
转换单元,用于根据预置的SQL处理类,将所述第一SQL转换为第二SQL;
查询单元,用于应用所述第二SQL进行所述目标数据库的查询。
所述装置还包括:
预置单元,用于在新建的SQL处理类中设置对当前SQL的处理方式。
所述对当前SQL的处理方式,具体为:
接收第一参数,所述第一参数为目标数据库的标识信息的连接;
返回第二参数,所述第二参数为表示对当前SQL处理结果的字符串。
所述转换单元包括:
第一确定单元,用于根据预置的SQL处理类,确定即将查询的目标数据库的标识信息;
解析单元,用于解析所述第一SQL,得到该第一SQL的最小语法元素;
组合单元,用于根据所述目标数据库的标识信息,将所述第一SQL的最小语法元素重新组合为第二SQL。
所述查询单元具体包括:
第二解析单元,用于从所述第二SQL获取目标数据库的标识信息,以定位目标数据库;
执行单元,用于根据第二SQL对目标数据库进行相应的读取、修改、删除或管理操作。
从上述的技术方案可以看出,本发明将不能被要查询的数据库识别的第一SQL转换成所述数据库能够识别的第二SQL,然后,应用所述的第二SQL对数据库进行查询。应用本发明提供的数据库查询方法,使用很小的代码开发量或修改量就能够实现某一SQL到另一SQL的转换,从而实现对不同数据库类型的支持。本发明提供的数据库查询方法以较低的开发维护成本,开发出同时适合多种数据库类型应用的系统,实现对多种数据库类型的支持,而且,不会出现由于使用开发框架所带来的系统性能的降低。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法实施例一的流程图;
图2为本发明方法实施例二的流程图;
图3为本发明装置实施例一的结构示意图;
图4为本发明装置实施例二的结构示意图。
具体实施方式
为实现本发明的发明目的,本发明提供一种数据库查询方法及装置,该方法对查询某一类型数据库的第一SQL进行转换处理,得到第二SQL,应用第二SQL进行数据库的查询。
以上是本发明的核心思想,为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,示出了本发明的一种数据库查询方法实施例1的流程图,可以包括以下步骤:
步骤101:接收对某一类型的目标数据库查询的第一SQL。
上述的第一SQL是进行数据库的查询的标准语言,但是并非所有类型的数据库都能识别,当要查询的目标数据库不能识别所述第一SQL时,执行以下步骤。
步骤102:根据预置的SQL处理类,将所述第一SQL转换为第二SQL。
该步骤中的转换过程可以是:解析所述第一SQL,分解得到第一SQL的最小语法元素,然后根据目标数据库的标识信息将第一SQL的全部最小语法元素重新组合成新的SQL此处即第二SQL。此处的目标数据库的标识信息是根据预置的SQL处理类获取得到的,用来唯一标识出一个目标数据库。在实际应用过程中,该步骤具体的实现方式可以是:在传递第一SQL给目标数据库进行目标数据库的查询之前,插入对新建的SQL处理类中的SQL处理方法的调用,该SQL处理方法即是第一SQL到第二SQL的具体实现方法。上述转换得到的第二SQL是能够被目标数据库识别的语句,即符合目标数据库的语法的语句。
步骤103:应用所述第二SQL进行所述目标数据库的查询。
该步骤中的第二SQL是由第一SQL根据目标数据库的标识信息转换而得的,因此,能够被目标数据库所识别,该步骤的具体实现方式可以是:将所述第二SQL传递给目标数据库,目标数据库再根据第二SQL发出的命令进行相应的查询操作。
在本实施例中,首先,通过将目标数据库不能识别的第一SQL进行转换处理,得到目标数据库能够识别的第二SQL;然后,应用第二SQL进行目标数据库的查询。应用该方法进行系统的开发只需对与数据库相关的SQL语句进行处理,可以不涉及开发的其它过程,从而大大降低了系统的开发和维护成本。本实施例所提供的数据库查询方法,以较低的开发维护成本,开发出同时适合多种数据库类型应用的系统,实现对多种数据库类型的查询。而且,不会出现由于使用开发框架所带来的系统性能降低。
参见图2,示出了本发明的一种数据库查询方法实施例2的流程图,可以包括以下步骤:
步骤201:在新建的SQL处理类中设置对当前SQL的处理方式。
其中,所述对当前SQL的处理方式具体可以为:
子步骤A1:接收第一参数,所述第一参数为目标数据库的标识信息的连接;
子步骤A2:返回第二参数,所述第二参数为表示对当前SQL处理结果的字符串。
该两个子步骤可以通过以下方法实现:首先,新建一个SQL处理类,可以将该处理类命名为SQLMapProxy,此处新建SQL处理类的方法和现有技术中类似,并且该处理类的名称可以任意设置,这里只是一个具体的例子,该处理类的名称并不影响本发明的实现;然后,在所述的SQL处理类中定义一个对当前SQL的处理方法,本例中的对当前SQL的处理方法即上述的对当前SQL的处理方式。该处理方法可以命名为mapSQL。
在实际过程中,定义所述处理方法的具体过程即是配置两个参数,第一个参数需要从外部进行接收,该参数可以为Connection类型,表示目标数据库的标识信息的连接,可以通过该参数获取目标数据库的类型和版本等标识信息,用于唯一标识出一个目标数据库,为后面的处理过程提供必要的信息;第二个参数为执行完该mapSQL方法之后需要返回的参数,即是所述处理方法的返回值,可以为String类型,表示处理方法将当前SQL转换后的SQL,即目标数据库最终接收到的SQL,在本例子中,即是第二SQL。需要说明的是,上述的内容只是一个具体的实施例,并不能造成对该步骤的限制。
步骤202:接收对某一类型的目标数据库查询的第一SQL。
上述的第一SQL是进行数据库的查询的标准语言,但是并非所有类型的数据库均能识别所述第一SQL,当要查询的目标数据库不能识别所述第一SQL时执行以下步骤。
步骤203:根据预置的SQL处理类,确定目标数据库的标识信息。
该步骤可以通过步骤201中的名为mapSQL的处理方法中的第一参数来确定目标数据库的类型和版本等标识信息。当然,还可以根据系统的使用环境不同而使用其它方法获得目标数据库标识信息,例如,可以在使用hibernate时,利用Environment类的判断来获取目标数据库的标识信息。
该步骤的保护范围并不局限于上述获得目标数据库标识信息的两种方法,能够获得目标数据库标识信息的所有方法均在该方法的保护范围之内。
步骤204:解析所述第一SQL,得到该第一SQL的最小语法元素。
该步骤可以使用Yacc(Yet Another Compiler-Compiler,编译器代码生成器)工具,解析所述的第一SQL,从而得到该第一SQL的最小语法元素,并且可以将所述第一SQL的最小语法元素以一种类似树状的数据结构存储。由于Yacc工具是本领域的公知常识故在此不再详细介绍。当然,该步骤的实现还可以使用其它的解析工具,甚至,开发人员还可以自行开发相关的解析代码。
该步骤的保护范围并不局限于上述解析第一SQL的方法,所有能够解析第一SQL的方法均在该方法的保护范围之内。
步骤205:根据所述目标数据库的标识信息,将所述第一SQL的最小语法元素重新组合成第二SQL。
在具体实现过程中,本步骤可以由影射管理器来执行.影射管理器可以根据之前获得的目标数据库标识信息,选择目标数据库对应的影射处理类.当目标数据库的类型和版本均已知时,选择预定义的该数据库对应的影射处理类;当目标数据库的类型已知版本未知时,选择目标数据库类型对应的最大版本影射处理类;当数据库的类型和版本均未知时,选择预定义的数据库类型对应的影射处理类.根据上述原则选择出目标数据库对应的影射处理类后,由该影射处理类遍历解析得到的全部的第一SQL的最小语法元素,重新组合成第二SQL,该第二SQL能够被目标数据库所识别,也是最终发送至目标数据库的SQL.
其中,所述的影射管理器可以是一个基于XML(Extensible Mark-upLanguage,可扩展标记语言)配置的可扩展结构,该影射管理器可以通过定义系统支持的各种数据库的类型及各类型数据库支持的不同版本,以及可以为每种类型的每个版本数据库的语法元素定义新的语法,从而得到当前SQL语法到目标数据库SQL语法的影射关系。影射管理器通过迭代子遍历当前SQL的全部语法元素,根据所述当前SQL语法到目标数据库SQL语法的影射关系,重新组合成新的SQL,本例中即第二SQL。本例中的当前SQL即第一SQL。
步骤206:从所述第二SQL获取目标数据库的标识信息,以定位目标数据库。
解析上一步得到的目标数据库能够识别的第二SQL,从而获得目标数据库的标识信息,根据该标识信息定位要查询的目标数据库,并将所述第二SQL发送至目标数据库。
步骤207:根据第二SQL对目标数据库进行相应的存取、修改、删除或管理操作。
根据目标数据库接收到的所述第二SQL,对目标数据库中的数据进行相应存取、修改或删除,或对数据库系统进行管理。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
相应于上面的方法实施例,本发明实施例还提供一种数据库查询装置。参见图3,示出了一种数据库查询装置实施例1的结构示意图,可以包括:
接收单元301,用于接收用户发送的对某一类型的目标数据库查询的第一SQL。
上述的第一SQL是进行数据库的查询的标准语言,但是并非所有类型的数据库都能识别,当要查询的目标数据库不能识别所述第一SQL时,以下的功能模块共同完成对目标数据库的查询。
转换单元302,用于根据预置的SQL处理类,将所述第一SQL转换为第二SQL。
该功能模块的具体工作过程可以是:解析所述第一SQL,分解得到第一SQL的最小语法元素,然后根据目标数据库的标识信息将第一SQL的全部最小语法元素重新组合成新的SQL此处即第二SQL。此处的目标数据库的标识信息是根据预置的SQL处理类获取得到的,用来用于唯一标识出一个目标数据库。在实际应用过程中,该功能模块的具体实现方式可以是:在传递第一SQL给目标数据库进行目标数据库的查询之前,插入对新建的SQL处理类中的SQL处理方法的调用,该SQL处理方法即是第一SQL到第二SQL的具体实现方法。上述转换得到的第二SQL是能够被目标数据库识别的语句,即符合目标数据库的语法的语句。
查询单元303,用于应用所述第二SQL进行所述目标数据库的查询。
该功能模块接收的第二SQL是由第一SQL根据目标数据库的标识信息转换而得的,因此,能够被目标数据库所识别,该功能模块的具体实现方式可以是:将所述第二SQL传递给目标数据库,目标数据库再根据第二SQL发出的命令进行相应的查询操作.
在本实施例中,首先,通过转换单元302将目标数据库不能识别的第一SQL进行转换处理,得到目标数据库能够识别的第二SQL;然后,查询单元303应用第二SQL进行目标数据库的查询。应用该装置进行系统的开发只需对与数据库相关的SQL语句进行处理,可以不涉及开发的其它过程,从而大大降低了系统的开发和维护成本。本实施例所提供的数据库查询装置,以较低的开发维护成本,开发出同时适合多种数据库类型应用的系统,实现对多种数据库类型的查询,而且,不会出现由于使用开发框架所带来的系统性能降低。
参见图4,示出了一种数据库查询装置实施例2的结构示意图,可以包括:
预置单元401,用于在新建的SQL处理类中设置对当前SQL的处理方式。
其中,所述对当前SQL的处理方式具体可以为:
接收第一参数,所述第一参数为目标数据库的标识信息的连接;
返回第二参数,所述第二参数为表示对当前SQL处理结果的字符串。
该功能模块可以通过以下过程实现上述对当前SQL的处理方式的设置:
首先,新建一个SQL处理类,可以将该处理类命名为SQLMapProxy,此处新建SQL处理类的方法和现有技术中类似,并且该处理类的名称可以任意设置,这里只是一个具体的例子,该处理类的名称并不影响本发明的实现;然后,在所述的SQL处理类中定义一个对当前SQL的处理方法,本例中的对当前SQL的处理方法即上述的对当前SQL的处理方式。该处理方法可以命名为mapSQL。
在实际过程中,定义所述处理方法的具体过程即是配置两个参数,第一个参数需要从外部进行接收,该参数可以为Connection类型,表示目标数据库的标识信息的连接,可以通过该参数获取目标数据库的类型和版本等标识信息,用于唯一标识出一个目标数据库,为后面的处理过程提供必要的信息;第二个参数为执行完该mapSQL方法之后需要返回的参数,即是所述处理方法的返回值,可以为String类型,表示处理方法将当前SQL转换后的SQL,即目标数据库最终接收到的SQL,在本例子中,即是第二SQL。需要说明的是,上述的内容只是一个具体的实施例,并不能造成对该功能模块的限制。
接收单元402,用于接收用户发送的对某一类型的目标数据库查询的第一SQL。
上述的第一SQL是进行数据库的查询的标准语言,但是并非所有类型的数据库均能识别所述第一SQL,当要查询的目标数据库不能识别所述第一SQL时,有以下功能模块共同完成对目标数据库的查询。
第一确定单元403,用于根据预置的SQL处理类,确定即将查询的目标数据库的标识信息。
该功能模块可以通过预置单元401定义的名为mapSQL的处理方法中的第一参数,确定目标数据库的类型和版本等标识信息。当然,还可以根据系统的使用环境不同而使用其它方法获得目标数据库标识信息,例如,可以在使用hibernate时,利用Environment类的判断来获取目标数据库的标识信息。能够获得目标数据库标识信息的所有功能模块均在该装置的保护范围之内。
解析单元404,用于解析所述第一SQL,得到该第一SQL的最小语法元素。
该功能模块可以使用Yacc(Yet Another Compiler-Compiler,编译器代码生成器)工具,解析所述的第一SQL,从而得到该第一SQL的最小语法元素,并且可以将所述第一SQL的最小语法元素以一种类似树状的数据结构存储.由于Yacc工具是本领域的公知常识故在此不再详细介绍.当然,该功能模块的实现还可以使用其它的解析工具,甚至,开发人员还可以自行开发相关的解析代码.
该功能模块的保护范围并不局限于上述解析第一SQL的方式,所有能够实现解析第一SQL模块均在该装置的保护范围之内。
组合单元405,用于根据所述目标数据库的标识信息,将所述第一SQL的最小语法元素重新组合为第二SQL。
在具体实现过程中,该功能模块可以是影射管理器。影射管理器可以根据接收到的之前获得的目标数据库标识信息,选择目标数据库对应的影射处理类。当目标数据库的类型和版本均已知时,选择预定义的该数据库对应的影射处理类;当目标数据库的类型已知版本未知时,选择目标数据库类型对应的最大版本影射处理类;当数据库的类型和版本均未知时,选择预定义的数据库类型对应的影射处理类。根据上述原则选择出目标数据库对应的影射处理类后,由该影射处理类遍历解析得到的全部的第一SQL的最小语法元素,重新组合成第二SQL,该第二SQL能够被目标数据库所识别,也是最终发送至目标数据库的SQL。
其中,所述的影射管理器可以是一个基于XML(Extensible Mark-upLanguage,可扩展标记语言)配置的可扩展结构,该影射管理器可以通过定义系统支持的各种数据库的类型及各类型数据库支持的不同版本,以及可以为每种类型的每个版本数据库的语法元素定义新的语法,从而得到当前SQL语法到目标数据库SQL语法的影射关系。然后,影射管理器通过迭代子遍历当前SQL的全部语法元素,根据所述当前SQL语法到目标数据库SQL语法的影射关系,重新组合成新的SQL,本例中即第二SQL。本例中的当前SQL即第一SQL。
第二确定单元406,用于从所述第二SQL获取目标数据库的标识信息,以定位目标数据库。
该功能模块可以通过解析接收到的目标数据库能够识别的第二SQL,从而获得目标数据库的标识信息,根据该标识信息定位要查询的目标数据库,并将所述第二SQL发送至目标数据库。
执行单元407,用于根据第二SQL对目标数据库进行相应的读取、修改、删除或管理操作。
该功能模块可以根据接收到的所述第二SQL,对目标数据库中的数据进行相应存取、修改或删除,或对数据库系统进行管理。
可以理解的是,本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据库查询方法,其特征在于,具体包括:
接收对某一类型的目标数据库查询的第一结构化查询语言SQL;
根据预置的SQL处理类,将所述第一SQL转换为第二SQL;
应用所述第二SQL进行所述目标数据库的查询。
2.根据权利要求1所述的方法,其特征在于,所述接收某一类型的目标数据库查询的第一结构化查询语言SQL之前,还包括:
在新建的SQL处理类中设置对当前SQL的处理方式。
3.根据权利要求2所述的方法,其特征在于,所述对当前SQL的处理方式,具体为:
接收第一参数,所述第一参数为目标数据库的标识信息的连接;
返回第二参数,所述第二参数为表示对当前SQL处理结果的字符串。
4.根据权利要求1所述的方法,其特征在于,所述根据预置的SQL处理类,将所述第一SQL转换为第二SQL,具体包括:
根据预置的SQL处理类,确定即将查询的目标数据库的标识信息;
解析所述第一SQL,得到该第一SQL的最小语法元素;
根据所述目标数据库的标识信息,将所述第一SQL的最小语法元素重新组合为第二SQL。
5.根据权利要求4所述的方法,其特征在于,所述应用所述第二SQL进行目标数据库的查询,具体包括:
从所述第二SQL获取目标数据库的标识信息,以定位目标数据库;
根据第二SQL对目标数据库进行相应的存取、修改、删除或管理操作。
6.一种数据库查询装置,其特征在于,具体包括:
接收单元,用于接收对某一类型的目标数据库查询的第一SQL;
转换单元,用于根据预置的SQL处理类,将所述第一SQL转换为第二SQL;
查询单元,用于应用所述第二SQL进行所述目标数据库的查询。
7.根据权要求6所述的装置,其特征在于,还包括:
预置单元,用于在新建的SQL处理类中设置对当前SQL的处理方式。
8.根据权利要求7所述的装置,其特征在于,所述对当前SQL的处理方式,具体为:接收第一参数,所述第一参数为目标数据库的标识信息的连接;
返回第二参数,所述第二参数为表示对当前SQL处理结果的字符串。
9.根据权利要求6所述的装置,其特征在于,所述转换单元包括:
第一确定单元,用于根据预置的SQL处理类,确定即将查询的目标数据库的标识信息;
解析单元,用于解析所述第一SQL,得到该第一SQL的最小语法元素;
组合单元,用于根据所述目标数据库的标识信息,将所述第一SQL的最小语法元素重新组合为第二SQL。
10.根据权利要求9所述的装置,其特征在于,所述查询单元具体包括:
第二确定单元,用于从所述第二SQL获取目标数据库的标识信息,以定位目标数据库;
执行单元,用于根据第二SQL对目标数据库进行相应的读取、修改、删除或管理操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910238254A CN101706810A (zh) | 2009-11-23 | 2009-11-23 | 一种数据库查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910238254A CN101706810A (zh) | 2009-11-23 | 2009-11-23 | 一种数据库查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101706810A true CN101706810A (zh) | 2010-05-12 |
Family
ID=42377035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910238254A Pending CN101706810A (zh) | 2009-11-23 | 2009-11-23 | 一种数据库查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101706810A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484392A (zh) * | 2014-12-11 | 2015-04-01 | 北京国双科技有限公司 | 数据库查询语句生成方法及装置 |
CN104536987A (zh) * | 2014-12-08 | 2015-04-22 | 联动优势电子商务有限公司 | 一种查询数据的方法及装置 |
CN105335403A (zh) * | 2014-07-23 | 2016-02-17 | 华为技术有限公司 | 数据库访问方法及装置、数据库系统 |
CN103823815B (zh) * | 2012-11-19 | 2017-05-17 | 中国联合网络通信集团有限公司 | 服务器及数据库访问方法 |
CN106802901A (zh) * | 2015-11-26 | 2017-06-06 | 北京国双科技有限公司 | 数据库查询的方法及装置 |
CN107153535A (zh) * | 2017-03-27 | 2017-09-12 | 武汉斗鱼网络科技有限公司 | 一种操作ElasticSearch的方法及装置 |
WO2018095351A1 (zh) * | 2016-11-28 | 2018-05-31 | 中兴通讯股份有限公司 | 搜索处理方法及装置 |
CN108255852A (zh) * | 2016-12-29 | 2018-07-06 | 中国移动通信集团浙江有限公司 | Sql执行方法及装置 |
CN108509328A (zh) * | 2017-02-23 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 数据库校验方法及装置 |
CN108710662A (zh) * | 2018-05-14 | 2018-10-26 | 上海跬智信息技术有限公司 | 语言转换方法和装置、存储介质、数据查询系统和方法 |
CN110489445A (zh) * | 2019-08-02 | 2019-11-22 | 四川宏力信息科技有限责任公司 | 一种基于多形态复合的海量数据快速查询方法 |
CN111104421A (zh) * | 2019-12-31 | 2020-05-05 | 新奥数能科技有限公司 | 一种基于数据接口标准配置的数据查询方法及装置 |
CN111198898A (zh) * | 2018-11-16 | 2020-05-26 | 浙江宇视科技有限公司 | 大数据查询方法及大数据查询装置 |
CN111259038A (zh) * | 2020-01-16 | 2020-06-09 | 北京思特奇信息技术股份有限公司 | 一种数据库查询及数据导出方法、系统、介质及设备 |
WO2020228801A1 (zh) * | 2019-05-15 | 2020-11-19 | 华为技术有限公司 | 一种多语言融合查询方法及多模数据库系统 |
CN114741417A (zh) * | 2022-04-01 | 2022-07-12 | 北京自如信息科技有限公司 | 一种多数据库查询、数据处理方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770144A (zh) * | 2004-11-02 | 2006-05-10 | 株式会社东芝 | 机器翻译系统及方法 |
CN101276330A (zh) * | 2007-03-30 | 2008-10-01 | 上海汉光知识产权数据科技有限公司 | 一种专利检索的语法转换方法 |
CN101477568A (zh) * | 2009-02-12 | 2009-07-08 | 清华大学 | 一种结构化数据和非结构化数据综合检索的方法 |
-
2009
- 2009-11-23 CN CN200910238254A patent/CN101706810A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770144A (zh) * | 2004-11-02 | 2006-05-10 | 株式会社东芝 | 机器翻译系统及方法 |
CN101276330A (zh) * | 2007-03-30 | 2008-10-01 | 上海汉光知识产权数据科技有限公司 | 一种专利检索的语法转换方法 |
CN101477568A (zh) * | 2009-02-12 | 2009-07-08 | 清华大学 | 一种结构化数据和非结构化数据综合检索的方法 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823815B (zh) * | 2012-11-19 | 2017-05-17 | 中国联合网络通信集团有限公司 | 服务器及数据库访问方法 |
CN105335403A (zh) * | 2014-07-23 | 2016-02-17 | 华为技术有限公司 | 数据库访问方法及装置、数据库系统 |
CN105335403B (zh) * | 2014-07-23 | 2020-02-14 | 华为技术有限公司 | 数据库访问方法及装置、数据库系统 |
US10534771B2 (en) | 2014-07-23 | 2020-01-14 | Huawei Technologies Co., Ltd. | Database access method and apparatus, and database system |
CN104536987A (zh) * | 2014-12-08 | 2015-04-22 | 联动优势电子商务有限公司 | 一种查询数据的方法及装置 |
CN104536987B (zh) * | 2014-12-08 | 2017-12-05 | 联动优势电子商务有限公司 | 一种查询数据的方法及装置 |
CN104484392A (zh) * | 2014-12-11 | 2015-04-01 | 北京国双科技有限公司 | 数据库查询语句生成方法及装置 |
CN104484392B (zh) * | 2014-12-11 | 2018-02-02 | 北京国双科技有限公司 | 数据库查询语句生成方法及装置 |
CN106802901A (zh) * | 2015-11-26 | 2017-06-06 | 北京国双科技有限公司 | 数据库查询的方法及装置 |
CN108121709A (zh) * | 2016-11-28 | 2018-06-05 | 中兴通讯股份有限公司 | 一种搜索处理方法及装置 |
WO2018095351A1 (zh) * | 2016-11-28 | 2018-05-31 | 中兴通讯股份有限公司 | 搜索处理方法及装置 |
CN108255852A (zh) * | 2016-12-29 | 2018-07-06 | 中国移动通信集团浙江有限公司 | Sql执行方法及装置 |
CN108255852B (zh) * | 2016-12-29 | 2020-09-11 | 中国移动通信集团浙江有限公司 | Sql执行方法及装置 |
CN108509328A (zh) * | 2017-02-23 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 数据库校验方法及装置 |
CN108509328B (zh) * | 2017-02-23 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 数据库校验方法及装置 |
CN107153535A (zh) * | 2017-03-27 | 2017-09-12 | 武汉斗鱼网络科技有限公司 | 一种操作ElasticSearch的方法及装置 |
CN107153535B (zh) * | 2017-03-27 | 2020-08-04 | 武汉斗鱼网络科技有限公司 | 一种操作ElasticSearch的方法及装置 |
CN108710662A (zh) * | 2018-05-14 | 2018-10-26 | 上海跬智信息技术有限公司 | 语言转换方法和装置、存储介质、数据查询系统和方法 |
CN111198898A (zh) * | 2018-11-16 | 2020-05-26 | 浙江宇视科技有限公司 | 大数据查询方法及大数据查询装置 |
CN111198898B (zh) * | 2018-11-16 | 2023-10-27 | 浙江宇视科技有限公司 | 大数据查询方法及大数据查询装置 |
WO2020228801A1 (zh) * | 2019-05-15 | 2020-11-19 | 华为技术有限公司 | 一种多语言融合查询方法及多模数据库系统 |
CN110489445A (zh) * | 2019-08-02 | 2019-11-22 | 四川宏力信息科技有限责任公司 | 一种基于多形态复合的海量数据快速查询方法 |
CN110489445B (zh) * | 2019-08-02 | 2023-03-21 | 四川宏力信息科技有限责任公司 | 一种基于多形态复合的海量数据快速查询方法 |
CN111104421A (zh) * | 2019-12-31 | 2020-05-05 | 新奥数能科技有限公司 | 一种基于数据接口标准配置的数据查询方法及装置 |
CN111259038A (zh) * | 2020-01-16 | 2020-06-09 | 北京思特奇信息技术股份有限公司 | 一种数据库查询及数据导出方法、系统、介质及设备 |
CN114741417A (zh) * | 2022-04-01 | 2022-07-12 | 北京自如信息科技有限公司 | 一种多数据库查询、数据处理方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101706810A (zh) | 一种数据库查询方法及装置 | |
US11372855B2 (en) | Metadata-based general request translator for distributed computer systems | |
CN1713179B (zh) | 在对象模型中的影响分析 | |
CN106934062B (zh) | 一种查询elasticsearch的实现方法及系统 | |
CN101727320B (zh) | 用于识别数据库更改对应用的影响的方法和系统 | |
CN1705945B (zh) | 提供查询的属性的方法和系统 | |
US7693900B2 (en) | Querying of distributed databases using neutral ontology model for query front end | |
US7882146B2 (en) | XML schema collection objects and corresponding systems and methods | |
US7975254B2 (en) | Design-time rules mechanism for modeling systems | |
Dowler et al. | Table access protocol version 1.0 | |
CN100501731C (zh) | 延迟取出用户定义类型的指定成员的系统和方法 | |
CN101271475B (zh) | 一种商业智能系统 | |
CN109426725B (zh) | 数据脱敏方法、设备及计算机可读存储介质 | |
US7505991B2 (en) | Semantic model development and deployment | |
US20100017395A1 (en) | Apparatus and methods for transforming relational queries into multi-dimensional queries | |
US20160063063A1 (en) | Database query system | |
CN101258496A (zh) | 用对数据库的查询自动填充 | |
US20110173203A1 (en) | Providing web services from business intelligence queries | |
CN105518676A (zh) | 查询任意半结构化数据的通用的sql增强以及高效地支持这样的增强的技术 | |
CN104111828A (zh) | 人机交互界面自动生成方法及系统 | |
US20150317331A1 (en) | Unified platform for application development | |
CN102073490A (zh) | 转译数据库语言的方法及装置 | |
CN101308505A (zh) | 提供对远程资源数据的访问的方法和数据处理系统 | |
KR101899055B1 (ko) | 갱신 데이터별 최적 쿼리문을 생성하는 스프레드시트 기반 데이터베이스 갱신 방법 | |
CN109710220B (zh) | 关系型数据库查询方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100512 |