2019独角兽企业重金招聘Python工程师标准>>>

看过几篇写grails分页的,大都把简单的东西搞复杂了,而且里面都没有对查询条件复用,在分页时,求count和list的时候where条件是一样的,好点的程序员都会把where条件复用一下,在grails里面肯定是利用闭包特性重复利用了,看看下面的代码就懂了~

def serach = {if (!params.max) params.max = 10if (!params.offset) params.offset = 0if (!params.sort) params.sort = "id"if (!params.order) params.order = "asc"def cel = {if(params.name){like("name", "%${params.name}%")}if(params.city){like("city", "%${params.city}%")}}def results = User.createCriteria().list(params,cel)
//      def cut = User.createCriteria().count(cel)  [userInstanceList: results, userInstanceTotal: results.totalCount]}

看到没,del闭包重复利用了~,另外需要说明下:在list的时候,会返回一个PagedResultList类型,里面就有totalCount属性,所以注释的那段代码不用写,不然会发3条SQL了。 这里主要是利用闭包复用查询条件演示了。

另外说下hibernate和ibatis里面的做法,hibernate一般这样干,封装个方法:

private Criteria getCriteria(Dept dept) {Criteria criteria = super.getSession().createCriteria(Dept.class);criteria.addOrder(Order.desc("id")); //倒序if (dept != null) {if (dept.getId() != null && dept.getId() > 0) {criteria.add(Restrictions.eq("id", dept.getId()));}if (StringUtils.isNotBlank(dept.getName())) {criteria.add(Restrictions.like("name", setPropertyValue(dept.getName())));}if(StringUtils.isNotBlank(dept.getDesp())){criteria.add(Restrictions.like("desp", setPropertyValue(dept.getDesp())));}}return criteria;}

这样就可以复用啦。

ibatis里面见我另外一篇文章 :http://mmblue.iteye.com/blog/852168

转载于:https://my.oschina.net/u/1378390/blog/297069

Grails 复用查询条件并分页相关推荐

  1. springmvc 带查询条件的分页,form的控制范围,怎么包裹条件提交给后台

    分页效果图: 分页技术发展很多年,我一直想找一个简单好理解的方式去分页,我下面的文章是提供一种思路.因为写的比较跳跃,这文章适合有分页基础的同学. 此篇文章用的技术:springmvc+hiberna ...

  2. java mvc 分页查询条件_java分页条件查询-GridManager.js表格插件+Pageable分页对象+mybatis pagehelper分页插件...

    总览: 一. GridManager.js表格插件 直接上插件API:链接地址 感觉该插件简单好用,插件作者也是有问必答,nice 二. 添加依赖 后端: pom文件添加: 1.7.0.RELEASE ...

  3. mongorepository查询条件_mongorepository分页条件查询

    最近项目有用到mongodb,也是经历了从不会到满百度的查资料,对mongodb有了些许的理解,项目里面总想着偷懒,不想使用template的类去拼写,就找了spring封装好的mongoreposi ...

  4. Grails GORM查询总结

    GORM绝对是Grails框架的一大亮点.GORM基于Hibernate的ORM之上做二次封装,既有Hibernate强大的功能,又有使用简便的特点.本篇主要总结和类比在项目开发中用到的GORM查询方 ...

  5. 使用ajax实现多个查询条件功能以及下拉分页

    2018-8月18日 1.效果图: 2.前台html <!--搜索栏-->             <div class=" row " style=" ...

  6. Spring Data JPA 复杂/多条件组合分页查询

    推荐视频: http://www.icoolxue.com/album/show/358 public Map<String, Object> getWeeklyBySearch(fina ...

  7. spring data jpa实现有条件的分页查询功能

    spring data jpa实现有条件的分页查询功能 前端部分代码.发送请求: $('#grid').datagrid({iconCls: 'icon-forward',fit: true,bord ...

  8. 多条件模糊分页查询(angular+primeng+springboot)

    在实现了分页查询后,我原本的项目之前的模糊查询失效,之前是传一个封装好的实体对象给后端,后端通过这个对象查询后返回结果给到前端.由于实现了分页,所以查询得到的结果也需要分页. 有个很关键的问题是分页需 ...

  9. 【Springboot学习笔记】SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法

    [Springboot学习笔记]SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法 目录 1.搭建环境 1.1直接从网上下载SpringB ...

最新文章

  1. python中若干关于类的问题
  2. 当页面有多个js文件时,应如何引入?
  3. 论文浅尝 | Dynamic Weighted Majority for Incremental Learning
  4. 【狂转】某个N人的访谈记录
  5. 学习patch命令打补丁,diff命令制作补丁
  6. 蓝桥杯 ALGO-143 算法训练 字符串变换
  7. IOS用标签显示滑块的值
  8. Spring Boot2.x 的Druid连接池配置[附带监控]
  9. 计算机桌面桌面设置动态视频教程,如何在计算机上设置动态桌面?电脑设置动态视频桌面图形教程...
  10. Java中定时任务的6种实现方式,你知道几种?
  11. 下载文件HTTP请求及处理过程
  12. svg中元素的层级关系
  13. Oracle 学习之建表、索引、同义词以及SQL优化
  14. 电话卡插到终端服务器通话时长,如何降低呼叫中心通话时长而不影响服务质量...
  15. fcpx如何清除缓存?Final Cut Pro X 清除缓存方法
  16. Excel导出工具类
  17. Java查漏补缺之Java8新特性
  18. rpm包管理器常见用法
  19. Java日常打卡笔记05
  20. 【数字化】国产自主智能制造数字化车间

热门文章

  1. mysql事务手写笔记_兴奋了!阿里技术官手写“MySQL笔记”,传授你年薪百万级干货...
  2. mysql 范围内日期列表,mysql – 将日期列表条件中的日期转换为日期范围列表
  3. php.ini centos,CentOS下修改php.ini后不生效的方法
  4. linux系统core dump设置,linux coredump设置
  5. Redis序列化配置类
  6. 2020年春季学期教学日历
  7. 2020年人工神经网络第二次作业-参考答案第七题
  8. mysql connection闪退重连_玩家排位巅峰赛开局闪退,重连失败,10分钟后一个提示让他懵了...
  9. python目标跟踪_商汤开源最大目标跟踪库PySOT,代码已正式上线!
  10. shocked的歌曲 类似shell_Wiz Khalifa - Shell Shocked[FLAC格式]