一种通过注解方式生成查询条件的方法和配置技术

技术编号:8532895 阅读:248 留言:0更新日期:2013-04-04 15:55
本发明专利技术公开了一种是用注解的方式配置数据库ORM的java?bean,使之能在Servlet中与页面传递过来的HttpRequest?Map匹配,从而根据注解的类型来生成出SQL的查询条件语句。提供注解的种类可以有数据库类型、匹配的表明、匹配的表字段名、对应的RequestMap中参数的名字以及查询的操作等。最终通过一个解析器,采用java反射的操作模式,对配置的注解和RequestMap判断和匹配后,返回一串String型的SQL条件语句。

【技术实现步骤摘要】

本专利技术涉及电子信息
,特别是涉及一种通过注解方式生成查询条件的方法。
技术介绍
在IT软件的业务开发中,通过开发语言与数据库的交互是很频繁的,通常开发人员会通过业务逻辑去生成一串数据库的SQL语句,再通过数据库提供的类库执行。往往在一个客户端的查询界面时,会输入各种查询条件,开发人员不得不在后台的代码中写很长的一串判断查询参数的语句,再生成最终的SQL提交给数据库,这样使得开发效率低下,也很容易产生错误的SQL语句。为了提高开发人员对数据库查询模块的开发效率,故采用了一种基于java注解的方式配置到数据库实体对象类里,通过一种解析器,自动的对注解解析,最终生成想要的查询SQL,提交给数据库。当然,这种方式也有一定的缺陷,就是当次没通过解析器进行生成查询语句时,解析器对一个复杂的实体类的解析是需要花费一段时间的,对于这种情况,查询可能请求的时间较长一些。
技术实现思路
本专利技术所要解决的技术问题是提供一种通过注解方式生成查询条件的方法,使程序开发人员不需要过多的写SQL语句,而是针对实体的对象的注解配置来操作。为实现上述专利技术目的,本专利技术提供一些数据库表实体对象的注解类型,提供的可配置的数据库类型、数据库字段类型、Requst中条件参数匹配名称、查询操作和自定义实现的字段查询解析器;所述可配置的Request中条件匹配参数名称,用于配置在数据库实体对象类的字段上,可以配置多个名称。参数名称注解中的值是一个字符串的数组,用于存放多个参数名称,对应到一个实体属性;所述查询操作,用于配置在数据库实体对象类中对此字段的查询操作,例如等于或大于等,值得注意的时,此注解中操作的个数应该与条件名称注解的个数相同,因为每个参数与每个操作一一对。同样,操作注解的值里也是一个数组,不过改数组存放的是一个包含常用查询操作类型的枚举对象;所述自定义实现的字段查询解析器,就是当使用者不想在当前字段使用默认的操作注解时,可以自己实现。只需继承公共字段解析器的抽象方法即可。并将所实现的类路径配置到该注解中。一种通过注解方式生成查询条件的类解析器,包括解析器解析配置在数据库表映射的实体对象中属于类范围的注解,通常可以是数据库类型,数据库表明通过这些注解的类型,解析器会最终采用数据库方言的形式转换生产的条件SQL语句。同时,类解析器会采用迭代的方式,将一个表实体类的属性迭代出来,通过参数的方式传给字段解析器解析。一种通过注解方式生成查询条件的字段解析器,包括解析每个实体对象的属性中的注解,从而找到RequestMap中对应的查询参数值,根据配置的注解信息,生成每个字段的条件查询操;当字段没有配置参数名称注解时,解析器自动跳过该类的属性;当字段没有配置查询操作类型注解时,解析器自动为其使用默认的查询操作,缺省情况下是等于操作。当字段配置了多个参数名称注解时,也要配置相同数量的操作类型注解,解析器会自动对该字段生成出相同数量的条件查询语句。由上述方案可以看出,本专利技术中只需对一个数据库表的实体类进行修改,在相应的位置上配置好相应的注解类型,再使用类解析器同时对实体类和查询请求的参数进行解析,最终生成出相应的查询语句。且便于开发人员轻松的使用。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一中系统结构示意图;图2为本专利技术实施例一中系统处理信息流程示意图。具体实施例方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一,参见图1、图2本专利技术提供一种通过注解的方式生成数据库查询语句的方法。类解析器通过客户端发来的查询请求参数,和定义的数据库表实体类的注解,通过解析后再次调用字段解析器,从而生成最终的查询SQL。由上可见,本专利技术提供的一种通过注解的方式生成数据库查询语句的方法,有以下优点。(I)便于配置本专利技术只需配置好实体类的注解,通过调用解析器的方式即可完成。(2)应用数据库类型广本专利技术使用的是数据方言的类型,如果配置了数据库类型注解,则生成的SQL是支持改数据库的。(3)更加的面向对象化开发人员在采用本方法对数据库进行查询调用时,更加的面向对象化,只需要关注数据库映射的实体对象即可。通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本专利技术采用了一种基于java注解的方式配置到数据库实体对象类里,通过一种解析器,自动的对注解解析,最终生成想要的查询SQL,提交给数据库。当然,这种方式也有一定的缺陷,就是当次没通过解析器进行生成查询语句时,解析器对一个复杂的实体类的解析是需要花费一段时间的,对于这种情况,查询可能请求的时间较长一些。以上所述仅是本专利技术的具体实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本专利技术的保护范围。本文档来自技高网
...

【技术保护点】
用与配置数据库映射对象类的注解,其特征在于,包括提供的可配置的数据库类型、数据库字段类型、Request中条件参数匹配名称、查询操作和自定义实现的字段查询解析器;所述可配置的Request中条件匹配参数名称,用于:配置在数据库实体对象类的字段上,可以配置多个名称;所述查询操作,用于:配置在数据库实体对象类中对此字段的查询操作,例如等于或大于等,值得注意的时,此注解中操作的个数应该与条件名称注解的个数相同,因为每个参数与每个操作一一对应;所述自定义实现的字段查询解析器,就是当使用者不想在当前字段使用默认的操作注解时,可以自己实现。只需继承公共字段解析器的抽象方法即可;并将所实现的类路径配置到该注解中。

【技术特征摘要】
1.用与配置数据库映射对象类的注解,其特征在于,包括提供的可配置的数据库类型、数据库字段类型、Request中条件参数匹配名称、查询操作和自定义实现的字段查询解析器; 所述可配置的Request中条件匹配参数名称,用于配置在数据库实体对象类的字段上,可以配置多个名称; 所述查询操作,用于配置在数据库实体对象类中对此字段的查询操作,例如等于或大于等,值得注意的时,此注解中操作的个数应该与条件名称注解的个数相同,因为每个参数与每个操作--对应; 所述自定义实现的字段查询解析器,就是当使用者不想在当前字段使用默认的操作注解时,可以自己实现。只需继承公共字段解析...

【专利技术属性】
技术研发人员:田之进周涛唐磊
申请(专利权)人:佳都新太科技股份有限公司
类型:发明
国别省市:

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

1