一种数据库动态查询的方法和系统技术方案

技术编号:2832578 阅读:201 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种数据库动态查询的方法,包括:依据用户的指定信息,从预置的多个元数据中查找相应的元数据;所述元数据包括关于查询字段的描述、关于过滤条件的描述、关于排序条件的描述以及关于查询子对象的描述;依据所获取的元数据信息,生成查询对象;调用参数接口,依据实际需求修改查询字段、过滤条件、排序条件及查询子对象四项内容中的任一项或者任意组合项;依据查询对象及其参数修改信息,生成SQL查询语句;执行所述SQL查询语句,完成数据库查询,返回数据结果集。本发明专利技术可以通过在运行时传入过滤参数等来实现不同的查询,能够满足纷繁复杂的查询需求;并显著降低应用程序维护的复杂度,提高查询机制的适应性和效率。

【技术实现步骤摘要】

本专利技术涉及数据库应用领域,特别是涉及一种数据库动态查询的方法和系统
技术介绍
在目前的很多软件应用系统(例如,J2EE企业应用等)中,经常需要把 程序和数据库结合起来进行使用,即经常面临访问数据库的问题,而数据库查 询则是最常用的一个操作。并且,由于企业应用中业务的复杂性和多变性,数 据库查询是使用频率非常高的功能模块,导致对数据查询模块的性能、健壮性 和扩展性要求比较高。现有技术中, 一般采用JDBC(Java Database Connectivity) API通过编程实 现数据库查询功能模块。JDBCAPI是Java语言访问数据库的一种规范, 一套 Java数据库的编程接口 ,是一组标准的Java语言中的接口和类,使用这些接 口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连 接、执行SQL语句进行数据的存取操作等。但是这种编程比较低级,导致工 作量大,并且容易出错;其次,由于编程代码量过多,还导致了应用程序代码 和数据访问代码之间的依赖过多,代码的适应性和可扩展性较差,不利于维护。 这些缺陷都难以满足目前数据库查询访问的需求,导致效率较低。现有技术还经常使用数据库视图技术来解决上述问题。视图具有以下特点A、 一些被经常使用的查询可以被定义为视图,从而使得用户不必为以后 的操作每次指定全部的条件,简化了用户对数据的理解,也可以筒化他们的操 作。B、 通过视图用户只能查询和修改他们所能见到的数据,数据库中的其它 数据则既看不见也取不到;即可以保证数据安全性。C、 使用数据库视图技术后,程序可以建立在视图之上,从而程序与数据 库表被视图分割开来,即视图可以使应用程序和数据库表在一定程度上独立。但是数据库视图技术仍然存在一些不可接受的缺陷1、 数据库视图技术只能按照SQL编写逻辑,没有面向对象的编程接口, 不利于用户理解,不能够方便的设置条件参数。2、 —见图定义完成后,不能在运行期动态修改。而由于大型数据库应用程 序中经常需要使用到非常多的数据库查询方式,业务复杂且随着业务的扩展而 较多变化,这么多的查询语句定义和维护工作量都很大;而且无论在设计期定 义多少种查询方式,都不可能把未来所有的查询方式穷举并定义出来,因此如 果外部环境出现新的变化时,而视图又不能动态修改,则应用程序难以适应查 询需求的变化。3、 视图适应能力差,工作效率低下,不易于维护; 一般视图需要每次把 可能用到的所有字段都查询出来,这样导致查询数据量倍增,运行效率低;反 之如果只查特定场景所需字段则通用性不佳,需要针对每一种场景分别设计视 图,导致维护工作量大量增加。当系统中的数据表关系发生变化,或者查询需 求发生变化时,所有相关的视图都需要修改,出错机率较大。4、 视图在整个应用层共享,不能实现会话级隔离,有可能导致各个会话 之间的相互影响。总之,目前需要本领域技术人员迫切解决的一个技术问题就是如何能够 创新的提出一种数据库查询机制,可以非常方便的应对复杂多变的数据库查 询,并能够实现会话级的隔离,以提高用户查询数据库的效率。
技术实现思路
本专利技术所要解决的技术问题是提供一种数据库查询的方法和装置,可以非 常方便的在运行期对查询依据进行修改,并能够实现会话级的隔离,以提高用 户查询数据库的效率。为了解决上述问题,本专利技术公开了一种数据库动态查询的方法,包括依 据用户的指定信息,从预置的多个元数据中查找相应的元数据;所述元数据包 括关于查询字段的描述、关于过滤条件的描述、关于排序条件的描述以及关于 查询子对象的描述;依据所获取的元数据信息,生成查询对象;调用参数接口, 依据实际需求修改查询字段、过滤条件、排序条件及查询子对象四项内容中的任一项或者任意组合项;依据查询对象及其参数修改信息,生成SQL查询语 句;执行所述SQL查询语句,完成数据库查询,返回数据结果集。优选的,所述预置的元数据关于查询子对象的描述中还可以包括关于多 个查询子对象关系的描述。优选的,所述调用参数接口对查询子对象进行修改的内容还可以包括修 改多个查询子对象的关系。优选的,所述动态查询方法还可以包括将直接依据查询获取的元数据信 息而生成的查询对象置于緩存中,并复制生成一新的查询对象实例返回给调用 者使用。优选的,所述动态查询方法还可以包括当前调用者使用的查询结束后, 销毁该用户使用的查询对象实例。依据本专利技术的另一优选实施例,还公开了一种数据库动态查询的装置,包 括以下部件元数据查找模块,用于依据用户的指定信息,从预置的多个元数据中查找 相应的元数据;所述元数据包括关于查询字段的描述、关于过滤条件的描述、 关于排序条件的描述以及关于查询子对象的描述;查询对象生成模块,用于依据所获取的元数据信息,生成查询对象;参数修改模块,用于调用参数接口,依据实际需求修改查询字段、过滤条 件、排序条件及查询子对象四项内容中的任一项或者任意组合项;SQL查询语句生成模块,用于依据查询对象及其参数修改信息,生成SQL 查询语句;查询执行模块,用于执行所述SQL查询语句,完成数据库查询,返回数 据结果集。优选的,所述预置的元数据关于查询子对象的描述中还包括关于多个查 询子对象关系的描述。优选的,所述参数修改模块对查询子对象进行修改的内容还包括修改多 个查询子对象的关系。优选的,所述动态查询装置还可以包括查询对象实例创建模块,用于将 所述查询对象生成才莫块得到的查询对象置于緩存中,并复制生成一新的查询对 象实例返回给调用者使用。优选的,所述动态查询装置还可以包括查询对象实例销毁^t块,用于当前调用者使用的查询结束后,销毁该用户使用的查询对象实例。与现有^&术相比,本专利技术具有以下优点为了解决查询方式多的问题,本专利技术提供了一种解决途径,应用程序可以 把各种查询方式分门别类定义成QUERY元数据,在运行时传入过滤参数等来 实现不同的查询,这样大大减少了查询语句的数量,但是还能够满足纷繁复杂 的查询需求;而且使用面向对象的方式编码也更方便。同时本专利技术提供的设计思想及管理方式则可以很好地解决查询需求变化 的问题,动态QUERY在运行期可以动态改变QUERY对象内部结构,包括查 询哪些字段、关联哪些数据库表、以及使用哪些过滤条件等,从而改变最终查 询方式,这样一来显著地降低了应用程序维护的复杂度,能够大幅度的提高查 询机制的适应性和效率。附图说明图1是本专利技术一种数据库动态查询的方法实施例的步骤流程图; 图2是本专利技术 一种数据库动态查询的装置实施例的结构框图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术可用于众多通用或专用的计算系统环境或配置中。例如个人计算 机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、包 括以上任何系统或设备的分布式计算环境等等。本专利技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例 如程序模块。 一般地,程序模块包括执行特定任务或实现特定抽象数据类型的 例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本 专利技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来 执行任务。在分布式计算环境中,程序模块可本文档来自技高网
...

【技术保护点】
一种数据库动态查询的方法,其特征在于,包括:依据用户的指定信息,从预置的多个元数据中查找相应的元数据;所述元数据包括关于查询字段的描述、关于过滤条件的描述、关于排序条件的描述以及关于查询子对象的描述;依据所获取的元数据信息, 生成查询对象;调用参数接口,依据实际需求修改查询字段、过滤条件、排序条件及查询子对象四项内容中的任一项或者任意组合项;依据查询对象及其参数修改信息,生成SQL查询语句;执行所述SQL查询语句,完成数据库查询,返回数据 结果集。

【技术特征摘要】
1、 一种数据库动态查询的方法,其特征在于,包括 依据用户的指定信息,从预置的多个元数据中查找相应的元数据;所述元数据包括关于查询字段的描述、关于过滤条件的描述、关于排序条件的描述以 及关于查询子对象的描述;依据所获取的元数据信息,生成查询对象;调用参数接口,依据实际需求修改查询字段、过滤条件、排序条件及查询 子对象四项内容中的任一项或者任意组合项;依据查询对象及其参数修改信息,生成SQL查询语句; 执行所述SQL查询语句,完成数据库查询,返回数据结果集。2、 如权利要求1所述的方法,其特征在于,所述预置的元数据关于查询 子对象的描述中还包括关于多个查询子对象关系的描述。3、 如权利要求2所述的方法,其特征在于,所述调用参数接口对查询子 对象进行修改的内容还包括修改多个查询子对象的关系。4、 如权利要求l所述的方法,其特征在于,还包括 将直接依据查询获取的元数据信息而生成的查询对象置于緩存中,并复制生成一新的查询对象实例返回给调用者使用。5、 如权利要求4所述的方法,其特征在于,还包括当前调用者使用的 查询结束后,销毁该用户使用的查询对象实例。6、 一种凄t据库动态查询的装置,其特征在于,包括 元数据查找模块,用于依据...

【专利技术属性】
技术研发人员:张俊
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:94[中国|深圳]

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

1