一种数据查询方法和系统技术方案

技术编号:9967536 阅读:95 留言:0更新日期:2014-04-25 08:06
本发明专利技术提供了一种数据查询方法和系统,以解决现有数据查询中查询困难且效率较低的问题。所述的方法包括:接收数据查询请求,所述数据查询请求中携带有查询参数;依据所述查询参数匹配预置的结构化查询语句SQL;采用正则表达式对所述结构化查询语句SQL进行替换,生成一个查询所述查询参数的引擎参数;将所述引擎参数发送给报表引擎以获取查询的数据结果。对请求的所有查询条件可以自动生成一个引擎参数进行查询,使用方便,查询效率较高。

【技术实现步骤摘要】
【专利摘要】本专利技术提供了一种数据查询方法和系统,以解决现有数据查询中查询困难且效率较低的问题。所述的方法包括:接收数据查询请求,所述数据查询请求中携带有查询参数;依据所述查询参数匹配预置的结构化查询语句SQL;采用正则表达式对所述结构化查询语句SQL进行替换,生成一个查询所述查询参数的引擎参数;将所述引擎参数发送给报表引擎以获取查询的数据结果。对请求的所有查询条件可以自动生成一个引擎参数进行查询,使用方便,查询效率较高。【专利说明】一种数据查询方法和系统
本专利技术涉及数据处理
,特别是涉及一种数据查询方法和系统。
技术介绍
JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成便携文档格式(Portable Document Format, PDF),超文本标记语言(Hyper TextMark-up Language, HTML)格式,或者可扩展标记语言(Extensible Markup Language, XML)格式。该库完全由Java写成,可以用于在各种Java应用程序,包括Java2平台企业版(Java2Platform Enterprise Edition, J2EE),互联网(Web)应用程序中生成动态内容。JasperReport是开源的,还有一个相关的开源工程IReport,这是一个图形化的辅助工具,因为JasperReport仅提供了可使用的类库而未提供更好的开发工具,IReport的出现解决了这一难题。它们配合使用将会更大程度的提高效率。JasperReport可以作为建表引擎,参数(Parameters)是传递给报表装填操作的对象引用,即参数主要作用于把那些不能从报表数据源中获得的数据传给报表引擎。例如,把执行报表装填过程的用户名字传递给报表引擎,若让用户名字显示在报表上或者在报表的标题(title)上动态的改变用户名字,可以将其以参数的形式传给报表引擎。但是,JasperReport在结构化查询语言(Structured Query Language, SQL)语句中只提供两种参数$P{}和$?! H,并且报表引擎首先处理$?! H参数引用,通过使用他们的值来获取最重要的SQL查询,当解析完$P!{}之后,报表引擎才会将剩下的普通的$P{}参数引用传递给普通参数,即报表引擎会进行嵌套查询。由于需要依据$P{} *$P!{}参数才能通过JsperR印ort进行数据查询,因此将SQL语句构成上述参数形式比较繁`琐,往往仅能进行无条件查询,若要进行条件查询,也仅需要采用多个参数进行简单的条件查询,使用非常不方便,且影响查询效率。
技术实现思路
本专利技术提供了一种数据查询方法和系统,以解决现有数据查询中查询困难且效率较低的问题。为了解决上述问题,本专利技术实施例公开了一种数据查询方法,包括:接收数据查询请求,所述数据查询请求中携带有查询参数;依据所述查询参数匹配预置的结构化查询语句SQL ;采用正则表达式对所述结构化查询语句SQL进行替换,生成一个查询所述查询参数的引擎参数;将所述引擎参数发送给报表引擎以获取查询的数据结果。本专利技术一个可选实施例中,所述依据所述查询参数匹配预置的结构化查询语句SQL,包括:从所述查询参数中获取至少一个语句参数;分别对每个所述语句参数进行匹配,确定对所述查询参数中参数名进行查询的结构化查询语句SQL。本专利技术一个可选实施例中,所述采用正则表达式对所述结构化查询语句SQL进行替换,生成查询所述查询参数的引擎参数,包括:采用正则表达式获取所述结构化查询语句SQL中的查询条件,并依据所述查询参数中的参数名和参数值对所述查询条件进行替换;依据替换后的查询条件生成一个查询所述查询参数的引擎参数。本专利技术一个可选实施例中,所述采用正则表达式获取所述结构化查询语句SQL中的查询条件,并依据所述查询参数中的参数名和参数值对所述查询条件进行替换,包括:采用正则表达式对每个所述结构化查询语句SQL的格式进行匹配,分别从所述结构化查询语句SQL中获取查询条件;确定所述结构化查询语句SQL所要查询的参数名,获取所述参数名在所述查询参数中对应的参数值;采用所述参数值对所述查询条件进行替换。本专利技术一个可选实施例中,所述查询参数中包括至少一个参数语句;所述依据替换后的查询条件生成一个查询所述查询参数的弓I擎参数,包括:获取至少一个替换后的查询条件,将各查询条件进行组装生成一个查询所述查询参数的引擎参数。本专利技术一个可选实施例中,所述采用正则表达式获取所述结构化查询语句SQL中的查询条件之前,还包括:判断所述参数值是否为空;当所述参数值不为空时,执行对所述查询条件进行替换的步骤;当所述参数值为空时,将所述查询条件置换为预置空条件。本专利技术一个可选实施例中,所述结构化查询语句SQL中含有以下至少一项:各查询条件的查询关系标识、各查询条件的区间条件、数据库转换函数和其他夹杂条件。本专利技术实施例还提供了一种数据查询系统,包括:接收模块,用于接收数据查询请求,所述数据查询请求中携带有查询参数;匹配模块,用于依据所述查询参数匹配预置的结构化查询语句SQL ;替换模块,用于采用正则表达式对所述结构化查询语句SQL进行替换,生成一个查询所述查询参数的引擎参数;查询模块,用于将所述引擎参数发送给报表引擎以获取查询的数据结果。本专利技术一个可选实施例中,所述匹配模块,包括:获取子模块,用于从所述查询参数中获取至少一个语句参数;匹配子模块,用于分别对每个所述语句参数进行匹配,确定对所述查询参数中参数名进行查询的结构化查询语句SQL。本专利技术一个可选实施例中,所述替换模块,包括:替换子模块,用于采用正则表达式获取所述结构化查询语句SQL中的查询条件,并依据所述查询参数中的参数名和参数值对所述查询条件进行替换;生成子模块,用于依据替换后的查询条件生成一个查询所述查询参数的引擎参数。本专利技术一个可选实施例中,所述替换子模块,用于采用正则表达式对每个所述结构化查询语句SQL的格式进行匹配,分别从所述结构化查询语句SQL中获取查询条件;确定所述结构化查询语句SQL所要查询的参数名,获取所述参数名在所述查询参数中对应的参数值;采用所述参数值对所述查询条件进行替换。本专利技术一个可选实施例中,所述查询参数中包括至少一个参数语句;所述生成子模块,用于获取至少一个替换后的查询条件,将各查询条件进行组装生成一个查询所述查询参数的引擎参数。本专利技术一个可选实施例中,所述替换模块,还包括:参数值判断子模块,用于判断所述参数值是否为空;当所述参数值不为空时,触发替换子模块执行对所述查询条件的替换;当所述参数值为空时,触发替换子模块将所述查询条件置换为预置空条件。本专利技术一个可选实施例中,所述结构化查询语句SQL中含有以下至少一项:各查询条件的查询关系标识、各查询条件的区间条件、数据库转换函数和其他夹杂条件。与现有技术相比,本专利技术包括以下优点:本专利技术能够依据接收的数据查询请求中的查询参数匹配预置的SQL语句,然后采用正则表达式对SQL语句SQL进行替换,生成查询所述查询参数的引擎参数,然后将该引擎参数发送给报表引擎以获取查询的数据结果。从而对请求的所有查询条件可以自动生成一个引擎参数进行查询,使本文档来自技高网
...
一种数据查询方法和系统

【技术保护点】
一种数据查询方法,其特征在于,包括:接收数据查询请求,所述数据查询请求中携带有查询参数;依据所述查询参数匹配预置的结构化查询语句SQL;采用正则表达式对所述结构化查询语句SQL进行替换,生成一个查询所述查询参数的引擎参数;将所述引擎参数发送给报表引擎以获取查询的数据结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:赵守来赵雨佳
申请(专利权)人:大唐软件技术股份有限公司
类型:发明
国别省市:

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

1