【摘要】查询模块在软件系统的开发中属于基本的必需模块,条件与对象属性相对应,而对象属性与表字段相对应,前台条件以And或者Or组装成JSON格式的数据,后台接受来自于前台的JSON数据进行一系列处理最终拼接为Hql字符串进而查询出满足条件的数据返回给前台展示。前台的查询条件组装成JSON格式数据借助于ligerui的ligerFilter插件,后台借助java代码对JSON格式数据进行处理。由于对象属性字段与数据表字段的对应采用了Hibernate映射框架,故在程序中对实体对象的操作相当于对数据库表的操作,这样简化了后台查询代码的编写工作,并且使得查询代码易于维护。
【关键词】组合;条件;查询;JSON;ligerui;ligerFilter;Hibernate;
引言
在如今的企业生产运行中,信息管理系统扮演着重要的作用,不但可以提高企业人员的工作效率,而且还能为企业降本增效,为企业创造更多的价值。企业的工作离不开信息管理系统,而查询模块是每一个信息管理系统中必不可少的模块。由于信息量的不断膨胀,数据记录在数据库中存储越来越多,对于特定记录的获取,通过一个条件往往无法进行准确定位,常常需要2个以上查询条件的组合来筛选满足条件的数据记录[1]。因此查询功能设计的好坏直接关系到信息管理系统效率的大小以及人机结合密切关系的程度,而且将在很大程度上影响系统的可维护性和可修改性[2]。
查询模块如此重要,对它的设计当然需要有合理性、科学性、易用性、易扩展等特点,并且能满足我们日常的各种查询需求。鉴于此,借助于基于Jquery的前端UI控件组合ligerui的ligerFilter插件进行自定义组合条件查询的开发将使得我们的查询模块更具有灵活性。
1.自定义组合条件查询模块设计思想
在传统信息管理系统的查询模块中,查询页面一般包括查询字段名字以及与其对应的输入框,一般情况下,此输入框要么由用户手工输入,要么以下拉框形式由用户选择,并且页面字段,后台代码基本都是根据最初需求已经固化了。比如客户最先需求只是由F1、F2字段组成的查询功能,我们根据用户需求完成了查询页面P1的设计,但是随着公司业务的发展,客户有了新的查询需求,在原有查询字段基础上再增加1,2,3…n个字段。此刻你会怎么做?修改P1页面字段及其对应的后台查询代码吗?当页面较少时或许我们能忍受这样的重复工作,但是当页面较多时,需求一变,不断的修改查询页面以及后台代码是很多开发工程师所不能忍受的。
为了避免如此笨拙的查询模块设计出现在系统中,将借助于UI控件ligerui的ligerFilter插件设计出自定义组合条件查询模块。以被查询对象User的字段为数据源生成下拉框(比如姓名、年龄),根据字段类型(字符串型、数字型)生成操作符下拉框(比如相等、大于)和条件输入框(比如字符串输入框、数字输入框),这些条件可以单纯的and、or组合,也可以先以分组形式优先级组合然后再与其他条件and、or组合。这些条件组合在前台封装成JSON数据传给后台,后台接收JSON数据经过处理转为条件对象Condition,根据条件对象Condition字段之间的逻辑关系拼接成查询的Hql字符串,Hibernate映射了被查询对象User与数据库中的表user,故根据Hql字符串对User对象的查询便实现了对数据库表user的查询。通过如上设计思想可以看到重点包括如下过程:
(a)JSON封装。
(b)JSON转化。
(c)构造查询的Hql字符串。
下面根据这3个过程进行详细的实现。
2.自定义组合条件查询模块实现过程
2.1 JSON封装
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用文本格式,易于人阅读和编写,同时也易于机器解析和生成,是理想的数据交换语言[3]。正因为JSON格式的数据具备这样的特点,故采用JSON格式的数据在页面与后台之间进行交互。
Ligerui是国内的基于Jquery开发的一款优秀的前端开源框架,采用JSON格式作为数据交互的载体,包括一系列的组件:表单、布局、表格等等,这些组件即插即用,需要什么组件,就添加该组件对应的JS文件,借助于ligerui不但能快速开发出界面风格统一的系统,而且由于即插即用特点故页面的加载速度较快,提高了用户友好度。Ligerui框架的ligerFilter插件已经实现了前台查询条件的JSON封装,故本着不用重新再造轮子的原则,直接利用ligerFilter插件实现前台查询条件的JSON封装。我们的查询页面仅包括必需的JS库与CSS样式文件便可,查询页面借助于ligerFilter插件构造的条件组合界面如图1所示:
2.2 JSON转为JavaBean
3.结论
(1)借助于Ligerui的ligerFilter插件可以方便的实现条件的自定义组合查询,减少了开发人员对查询界面的重复设计工作,对JSON数据的组装工作。
(2)通过基于JSON格式的自定义组合条件查询可以方便地适应于系统中查询模块查询字段的变更工作,查询字段变更时,不需要开发人员对查询界面进行改动,仅仅只需用户选择相应字段查询便可。
(3)通过此设计可以方便的进行报表的各种条件统计,查询出用户关心的报表统计信息。
参考文献
[1]骆力明,陈小兵,王彦丽.数据库多条件组合查询优化算法研究[J].首都师范大学学报:自然科学版,2007,28(02):23-27.
[2]赵大伟,陈刚.基于.NET的多条件组合查询技术的设计与实现[J].电脑知识与技术,2012,08(25):6045-6048.
[3]龚建华.JSON格式数据在Web开发中的应用[J].办公自动化:综合月刊,2013(10):46-48.
[4]骆文亮.JSON序列化工具探析[J].信息系统工程,2013(11):15-15.
作者简介:封侣(1985—),男,大學本科,设计与开发工程师,主要研究方向:J2EE开发。