一种支持多条件过滤查询分页组件设计与实现.docVIP

一种支持多条件过滤查询分页组件设计与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种支持多条件过滤查询分页组件设计与实现

一种支持多条件过滤查询分页组件设计与实现   摘要:常见的分页组件存在一些不足,针对多条件组合过滤的分页查询业务场景提出了改进方案,在实现分页查询封装的同时给业务开发者提供足够的开发灵活性,并在Spring MVC开发框架的基础上实现了该分页组件,在视图层使用JQuery实现了一个与后台开发框架完全分离的分页页面组件,在后台使用泛型和桥接模式实现了分页查询的封装。应用结果表明该组件能够满足日常开发中的所有应用场景,且具有较好的移植性和稳定性。   关键词:分页组件;查询优化;分页框架;Spring框架   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)03-0514-06   在企业级应用开发中,对业务实体信息的多条件组合过滤查询是基本功能之一。针对客户的查询要求,服务器可以一次性将符合条件的所有数据推送给客户端,但这种方式只适合返回少量数据集的情况。针对大型和超大型数据集,服务器必须采用分页的方式将符合要求的数据以分页的方式推送给客户端。文献[1]提出了一种基于MVC的分页组件,但对应的查询语句写死在分页抽象类中,这就导致了该分页组件没办法满足多条件组合过滤查询和对结果集按照特定属性进行排序等应用场景。文献[2]使用泛型DAO实现了支持多条件组合查询和对结果集进行排序的分页组件,但是实现方法是将查询过滤条件和排序字段以键值对的方式存放在Map中,这就要求业务开发者在处理分页查询时需要进行二次加工,将过滤条件或者排序条件按照预定好的方式组成键值对推入到预定义好的Map变量中,这种方式将界面查询元素和分页查询处理代码进行了紧耦合,不但增加了程序调试和维护的难度,且增加了业务开发者的工作量。另外上述两种方法也都是针对单个对象的分页查询应用,对多个对象间关联查询的应用场景支持不了,而在实际企业应用中,这种多表关联查询的分页查询业务场景非常多,且分页的多个查询条件通常是动态组合的。在多条件动态组合查询业务场景中,对于有N个查询条件,这N个查询条件的不同拼接顺序得到的不同JPQL或者SQL语句在执行效率方面相差非常大[3-5],因此在数据查询业务中需要给业务开发??员提供足够的开发灵活性,让其在拼接查询语句时可以根据数据库表的设计、数据量和对应SQL优化器的工作原理对查询条件进行拼接,取得最优的执行效率。   针对上述问题,本文提出了一种改进的Web分页组件方法,在实现分页查询封装的同时给业务开发者提供足够的开发灵活性,在满足分页组件的可扩展性和可移植性要求的同时,达到提高代码可维护性、增加业务开发者的开发灵活性和提高最终应用软件的执行效率等目的。   1 相关实现技术   1.1 Spring MVC   Spring框架提供了构建Web应用程序的全功能MVC模块 ,是一种高度可配置的MVC框架,可以定制本地化和主题解析,并提供多种视图技术,实现了控制器、模型对象、分派器以及处理程序对象的多角色分离,这种分离让它们更容易进行定制,在视图层,Spring提供了视图解析器使其可以在浏览器中直接显示模型数据 [6-7]。   1.2 Java泛型   泛型是程序设计语言的一种特性,允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,对于这些可变部分允许在其使用前再声明具体的类型,Java泛型是Java SE 1.5及以上版本的新特性。在Java编程中,常常用到在容器中存放对象或从容器中取出对象,并根据实际情况转型为相应的对象,但在转型过程中极易出现错误,且很难发现。而使用泛型则可以在存取对象时明确指名对象的类型,将问题暴露在编译阶段,由编译器检测,从而避免Java在运行时出现转型异常,增加程序的可读性与稳定性,提高程序的运行效率[1]。   1.3 JPA   JPA(Java Persistence API)通过注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。由于传统的O/R 映射解决方案太多,不方便开发人员的学习和使用,JPA则提供了数据访问的统一规范和标准[1]。JPA包括以下优势:1)标准化;2) 简单易用,集成方便;3) 可媲美JDBC 的查询能力。   1.4 JQuery   JQuery是一个轻量级的JavaScript脚本,支持cssl、css2、css3定义的属性和选择器,兼容多种浏览器。开发人员除了可以使用JQuery自身带有的显示和隐藏元素特效外,还可以通过插件实现更多功能,如表单验证、Tab导航、拖放效果、表格排序、树形菜单、图像特效以及Ajax上传等,极大地方便了开发人员快速开发动态效果网页。   2 分页组件业务架构设计   当前大部分web应用都采用了MVC架构模式,该模式把软件系统分为模型(Mode1)

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档