[发明专利]一种采用动态查询语言的快速查询方法有效
申请号: | 201310184484.5 | 申请日: | 2013-05-17 |
公开(公告)号: | CN103279509A | 公开(公告)日: | 2013-09-04 |
发明(设计)人: | 吕剑;许剑;李强;段相举;揭柳;刘聪;牛巍;罗思亮;刘路璐 | 申请(专利权)人: | 北京首钢自动化信息技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/44 |
代理公司: | 北京华谊知识产权代理有限公司 11207 | 代理人: | 刘月娥 |
地址: | 100041*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 采用 动态 查询 语言 快速 方法 | ||
技术领域
本发明属于业务系统技术平台领域,特别是提供了一种采用动态查询语言的快速查询方法,在BS多层架构下的采用语义模型的、基于配置的、动态查询实现方法。
背景技术
在业务系统软件开发过程中,业务数据的灵活、便捷、高效查询一直都是体现信息化水平的关键问题。而传统的多层BS架构体系中,一个业务查询需求实现往往需要遍历表示层、服务层、和集成层才能返回查询结果,处理环节长、开发量大,不能灵活根据需求快速实现。下面以SSH(Strut + Spring + Hiberate)平台为例,说明一下用户提交查询请求到查询数据返回需要经历的几个步骤:
表示层将接收客户端(IE)提交的HTML请求对象,转变成表示层的Form或值对象
表示层控制器调用表示层Action对象执行查询。
Action对象调用查询服务Service执行查询
查询Service调用持久层的数据访问对象Dao进行查询
数据访问对象通过持久层框架提供的OR-Mapping,对象关系映射转换成SQL语句,对数据库进行查询,然后返回值对象。
一个开发者如果开发这个简单的查询需要编辑下列文件:
创建关系数据库表对应的值对象
创建值对象与数据库表对应的ORMapping对象关系映射文件。
创建数据访问对象Dao类去实现查询。
创建服务对象方法去封装查询实现。
创建表示层的Action类,和Form类。
从上面示例来看,实现一个简单查询需经历5个步骤才能转换成sql进行执行,处理环节多,效率低,开发周期长,开发工作量大。并且,当需求发生变化的时候,开发人员需要修改以上诸多文件后,进行编译部署,重启应用后才能够给用户提供查询服务。
发明内容
本发明的目的在于提供一种采用动态查询语言的快速查询方法,摈弃了原来查询的多层、硬编码实现方式,而是通过查询引擎加配置方式来实现用户的灵活、高效、快捷的查询要求。让开发人员在面对用户提出的查询需求时候,不需要开发任何对象,而采用配置方式来快速实现。当用户需求发生变化时候,也能通过修改配置来实现需求,不再需要停机部署,快速响应需求变化,提升信息化服务水平。
为解决上述技术问题,本发明采用了一种领域对象语义建模与XQL动态查询语言数据访问方式实现灵活、快速查询的方法。XQL(Xml schema based Query Language) 是一种自主创新、发明的针对Xsd语义描述的动态解析语言,以物料查询为例:当用户要按照物料号查询物料信息时候,只需写 /mat[matId=#matId] 即可,如果用户还想看到物料所属订单信息,那么修改表达式为 /mat[matId=#matId]/+po 便可满足要求。本发明方法的工艺步骤如下:
(1)通过后台开发界面,采用xsd文件对领域模型进行语义建模,建立与关系型数据库的映射关系。
(2)根据查询要求,编写语义访问表达式,表达式定义了需访问的领域对象与其相关联对象关系。
(3)通过前台的查询配置界面配置查询服务,输入步骤(2)配置好的语义表达式,选择返回数据的字段信息作为显示列。
(4)在前台的列表控件中配置数据源,选择步骤(3)返回查询服务名,系统后台动态反馈定义的显示列数据到控件中用于初始化显示字段。
(5)用户在列表控件中输入查询数据,前台根据配置的语义表达式、输入的查询条件、统计要求、显示字段要求,组装成xml文件传递到后台。
(6)后台接收到传入的查询的xml请求后,首先根据xql语句与动态查询条件、与数据映射关系,生成sql语句,提交数据库进行查询,并将返回信息根据显示字段要求组装成xml反馈到前台。
(7)前台接收到xml信息后,通过列表展现控件显示在用户界面上。
其中步骤(1)所述的领域对象语义建模,采用xsd文件方式,与数据库表之间通过命名规范方式建立映射,之间实现双向同步方式,即可以xsd文件转换成面向数据库的ddl文件,实现xsd到数据库结构的同步,也可以修改数据库定义,从数据库同步到xsd。另外:xsd里定义的复合类型complexType通过语义方式映射到数据表,复合类型的id代表了对象在领域模型里的语义标识,对应于表的主键名称;复合类型的名称对应于数据库对象名,包括表、视图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京首钢自动化信息技术有限公司,未经北京首钢自动化信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310184484.5/2.html,转载请声明来源钻瓜专利网。