一种SQL限定查询子句生成方法和组合逻辑过滤器技术

技术编号:15542666 阅读:115 留言:0更新日期:2017-06-05 11:31
本发明专利技术涉及一种SQL限定查询子句生成方法和组合逻辑过滤器。该方法应用于由一个或多个基础数据过滤器组成的组合逻辑过滤器,其中,基础数据过滤器,包括用于获取参数值的GetParameters虚方法和用于获取SQL语句的GetSQL虚方法。该方法调用GetSQL虚方法获取SQL语句,调用GetParameters虚方法获取参数值,根据获取的参数值逻辑拼接获取的SQL语句。本发明专利技术调用GetSQL虚方法获取SQL语句,调用GetParameters虚方法获取参数值,根据获取的参数值逻辑拼接获取的SQL语句,拼接出的限定查询子句的执行路径较优且实现简单。

SQL limited query clause generation method and combinational logic filter

The present invention relates to a SQL constrained query clause generation method and a combinational logic filter. This method is applied to the combinational logic filter consists of one or more basic data filter which filters for GetSQL based data, including virtual methods to obtain the SQL statement GetParameters virtual method and used to obtain the parameter values. This method calls the GetSQL virtual method to obtain the SQL statement, calls the GetParameters virtual method to obtain the parameter value, and logically obtains the SQL statement according to the acquired parameter value. The invention calls the GetSQL method to obtain the virtual SQL statement, call the GetParameters method to obtain the virtual parameters according to the parameter value of SQL logic splicing acquisition, limited query clause execution path splices the better and simple realization.

【技术实现步骤摘要】
一种SQL限定查询子句生成方法和组合逻辑过滤器
本专利技术涉及分布式计算应用领域,尤其涉及一种SQL限定查询子句生成方法和组合逻辑过滤器。
技术介绍
SQL(StructuredQueryLanguage,结构化查询语言)是一种特殊目的的编程语言,是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。同时,SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能。现被广泛用于存取数据以及查询、更新和管理关系数据库系统。目前,SQL限定查询语句的生成方法有两种方法:第一种方式,采取字符串拼接的方式,如:用户界面上有NAME(名称),ADDRESS(地址)两个字段的查询条件,则可在程序中根据几种不同的输入状态来完成查询条件的拼接:当NAME输入不为空时,将与NAME有关的条件拼接到查询语句中;同样,当ADDRESS字段输入不为空时,则将与ADDRESS有关的条件拼接到查询语句中。这种方式虽然执行路径较优,但编程过程复杂,特别的是查询条件中当有比较复杂的逻辑结构时,则复杂度更高;第二种方式,采取OR(或)的方式进行,以ORACLE为例,用户界面上有NAME,ADDRESS两个字段的查询条件时,可以将SQL的WHERE子句写为:(:NAMEISNULLORNAMELIKE:NAME)AND(:ADDRESSISNULLORADDRESSLIKE:ADDRESS)。第二种方式虽然可以简化程序代码,但会让执行路径变得非常糟糕,使索引不能得到有效利用。
技术实现思路
(一)要解决的技术问题为了简单且较优的生成限定查询子句,本专利技术提供一种SQL限定查询子句生成方法和组合逻辑过滤器,调用GetSQL虚方法获取SQL语句,调用GetParameters虚方法获取参数值,根据获取的参数值逻辑拼接获取的SQL语句,拼接出的限定查询子句的执行路径较优且实现简单。(二)技术方案为了达到上述目的,本专利技术采用的主要技术方案包括:一种结构化查询语言SQL限定查询子句的生成方法,所述方法应用于组合逻辑过滤器,所述组合逻辑过滤器由一个或多个基础数据过滤器组成;所述基础数据过滤器,包括用于获取参数值的GetParameters虚方法和用于获取SQL语句的GetSQL虚方法;所述方法包括:101,调用所述基础数据过滤器所包括的GetSQL虚方法获取SQL语句;102,调用所述基础数据过滤器所包括的GetParameters虚方法获取参数值;103,根据获取的参数值逻辑拼接获取的SQL语句。可选地,步骤103具体包括:103-1,根据获取的参数值,确定获取的SQL语句输入参数的参数值;103-2,逻辑拼接输入参数的参数值非空的SQL语句。可选地,所述组合逻辑过滤器为与逻辑过滤器;步骤103-2具体包括:用AND符号拼接输入参数的参数值非空的SQL语句。可选地所述组合逻辑过滤器为或逻辑过滤器;步骤103-2具体包括:用OR符号拼接输入参数的参数值非空的SQL语句。可选地,所述基础数据过滤器为SQL过滤器。除此之外,本专利技术采用的主要技术方案还包括:一种组合逻辑过滤器,所述组合逻辑过滤器由一个或多个基础数据过滤器组成;所述基础数据过滤器,包括用于获取参数值的GetParameters虚方法和用于获取结构化查询语言SQL语句的GetSQL虚方法;所述组合逻辑过滤器,用于调用所述基础数据过滤器所包括的GetSQL虚方法获取SQL语句;调用所述基础数据过滤器所包括的GetParameters虚方法获取参数值;根据获取的参数值逻辑拼接获取的SQL语句。可选地,所述组合逻辑过滤器,用于根据获取的参数值,确定获取的SQL语句输入参数的参数值;逻辑拼接输入参数的参数值非空的SQL语句。可选地,组合逻辑过滤器为基类;所述组合逻辑过滤器的子类为与逻辑过滤器;所述与逻辑过滤器,用于用AND符号拼接输入参数的参数值非空的SQL语句。可选地,组合逻辑过滤器为基类;所述组合逻辑过滤器的子类为或逻辑过滤器;所述或逻辑过滤器,用于用OR符号拼接输入参数的参数值非空的SQL语句。可选地,所述基础数据过滤器为基类,所述基础数据过滤器的子类为SQL过滤器。(三)有益效果本专利技术的有益效果是:调用GetSQL虚方法获取SQL语句,调用GetParameters虚方法获取参数值,根据获取的参数值逻辑拼接获取的SQL语句,拼接出的限定查询子句的执行路径较优且实现简单。附图说明图1为本专利技术一个实施例提供的一种SQL限定查询子句的生成方法流程图;图2为本专利技术一个实施例提供的一种类图示意图;图3为本专利技术一个实施例提供的另一种SQL限定查询子句的生成方法流程图。具体实施方式为了更好的解释本专利技术,以便于理解,下面结合附图,通过具体实施方式,对本专利技术作详细描述。传统的SQL限定查询语句的生成方法有两种方法:第一种方式,采取字符串拼接的方式。这种方式虽然执行路径较优,但编程过程复杂,特别的是查询条件中当有比较复杂的逻辑结构时,则复杂度更高。第二种方式,采取OR(或)的方式进行。第二种方式虽然可以简化程序代码,但会让执行路径变得非常糟糕,使索引不能得到有效利用。本专利技术调用GetSQL虚方法获取SQL语句,调用GetParameters虚方法获取参数值,根据获取的参数值逻辑拼接获取的SQL语句,拼接出的限定查询子句的执行路径较优且实现简单。参见图1,本实施例提供了一种SQL限定查询子句的生成方法,该方法应用于组合逻辑过滤器,该组合逻辑过滤器由一个或多个基础数据过滤器组成;基础数据过滤器,包括用于获取参数值的GetParameters虚方法和用于获取SQL语句的GetSQL虚方法;该方法包括:101,调用基础数据过滤器所包括的GetSQL虚方法获取SQL语句。102,调用基础数据过滤器所包括的GetParameters虚方法获取参数值。103,根据获取的参数值逻辑拼接获取的SQL语句。可选地,步骤103具体包括:103-1,根据获取的参数值,确定获取的SQL语句输入参数的参数值。103-2,逻辑拼接输入参数的参数值非空的SQL语句。可选地,组合逻辑过滤器为与逻辑过滤器;步骤103-2具体包括:用AND符号拼接输入参数的参数值非空的SQL语句。可选地,组合逻辑过滤器为或逻辑过滤器;步骤103-2具体包括:用OR符号拼接输入参数的参数值非空的SQL语句。可选地,基础数据过滤器为SQL过滤器。本专利技术的有益效果是:调用GetSQL虚方法获取SQL语句,调用GetParameters虚方法获取参数值,根据获取的参数值逻辑拼接获取的SQL语句,拼接出的限定查询子句的执行路径较优且实现简单。本专利技术提供的一种SQL限定查询子句的生成方法应用于图2所示的类结构中,该类结构中包括1、组合逻辑过滤器(CompositeLogicFilter),是所有逻辑过滤器的基类,其有个一名为ChildDataFilters的集合属性,表示组合逻辑过滤器是由多个基础数据过滤器(BaseDataFilter)组成的。(1)AndLogicFilter,为与逻辑过滤器,是Compos本文档来自技高网
...
一种SQL限定查询子句生成方法和组合逻辑过滤器

【技术保护点】
一种结构化查询语言SQL限定查询子句的生成方法,所述方法应用于组合逻辑过滤器,其特征在于,所述组合逻辑过滤器由一个或多个基础数据过滤器组成;所述基础数据过滤器,包括用于获取参数值的GetParameters虚方法和用于获取SQL语句的GetSQL虚方法;所述方法包括:101,调用所述基础数据过滤器所包括的GetSQL虚方法获取SQL语句;102,调用所述基础数据过滤器所包括的GetParameters虚方法获取参数值;103,根据获取的参数值逻辑拼接获取的SQL语句。

【技术特征摘要】
1.一种结构化查询语言SQL限定查询子句的生成方法,所述方法应用于组合逻辑过滤器,其特征在于,所述组合逻辑过滤器由一个或多个基础数据过滤器组成;所述基础数据过滤器,包括用于获取参数值的GetParameters虚方法和用于获取SQL语句的GetSQL虚方法;所述方法包括:101,调用所述基础数据过滤器所包括的GetSQL虚方法获取SQL语句;102,调用所述基础数据过滤器所包括的GetParameters虚方法获取参数值;103,根据获取的参数值逻辑拼接获取的SQL语句。2.根据权利要求1所述的方法,其特征在于,步骤103具体包括:103-1,根据获取的参数值,确定获取的SQL语句输入参数的参数值;103-2,逻辑拼接输入参数的参数值非空的SQL语句。3.根据权利要求2所述的方法,其特征在于,所述组合逻辑过滤器为与逻辑过滤器;步骤103-2具体包括:用AND符号拼接输入参数的参数值非空的SQL语句。4.根据权利要求2所述的方法,其特征在于,所述组合逻辑过滤器为或逻辑过滤器;步骤103-2具体包括:用OR符号拼接输入参数的参数值非空的SQL语句。5.根据权利要求1至4任一权利要求所述的方法,其特征在于,所述基础数据过滤器为SQL过滤器。6.一种组合逻辑过滤器,其特征在于,所述组合逻辑...

【专利技术属性】
技术研发人员:刘丹
申请(专利权)人:广东金赋科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1