Grails复用查询条件并分页的实现方法
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"Grails复用查询条件并分页的实现方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2025年12月02日Grails复用查询条件并分页的实现方法
本篇内容介绍了"Grails复用查询条件并分页的实现方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
看过几篇写grails分页的,大都把简单的东西搞复杂了,而且里面都没有对查询条件复用,在分页时,求count和list的时候where条件是一样的,好点的程序员都会把where条件复用一下,在grails里面肯定是利用闭包特性重复利用了,看看下面的代码就懂了~
def serach = { if (!params.max) params.max = 10 if (!params.offset) params.offset = 0 if (!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; }这样就可以复用啦。
"Grails复用查询条件并分页的实现方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
条件
复用
查询
方法
闭包
代码
内容
时候
更多
知识
复杂
实用
学有所成
接下来
不用
东西
倒序
做法
困境
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
安徽数据网络技术哪个好
无法连接到服务器需要验证
对于提升网络安全意识
北京亦庄软件开发
如何下载我的世界斗罗大陆服务器
数据库与注册表
郑州教育网络安全科普体验中心
霸州ipfs服务器
手机建立vpn服务器
疾控网络安全建设保障方案
西安企业办公软件开发
pp查重数据库
服务器系统怎么进不了网站
dns备用服务器填错有什么影响
西安烽火软件开发公司
网络技术激活码能用吗
数据库编译按钮
罗湖服务器机箱订做
lte网络技术
网站数据库名称在哪里
主机写入数据库
保健软件开发定制
芜湖电商软件开发要多少钱
天津云腾网络技术有限公司
武汉企业软件开发团队
欣鼎网络技术公司
互联网金融科技龙头股
网络安全无小事的图片
云服务器云免
公安涉企网络安全等级保护