Grails复用查询条件并分页的实现方法
发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,本篇内容介绍了"Grails复用查询条件并分页的实现方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2024年11月12日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安全错误
数据库的锁怎样保障安全
马恩数据库
比特币数据库
核电厂辐照监督数据库
mc服务器控制台开作弊指令
ie服务器
我的世界服务器必备指令击杀榜
北碚网络安全进校园
ha模式 数据库
花园路租房软件开发
国家网络安全周举办地
软件开发不容易被替代的业务
大公司软件开发整个工期估算
芯片测试是软件开发吗
对当前网络技术应用的看法
亿云服务器安全设置
监狱网络技术的是警察吗
linux 建服务器
数据源与数据库连接一样吗
网页数据库事务日志已满
软件开发换工作面试必回的问题
交通银行软件开发岗笔试
科技部+互联网
软件开发面试问题回答
微信登陆 服务器繁忙
arcgis分布式地理数据库
达梦数据库还原时读取文件失败
asscee数据库实用教程
网络安全相关的国家部委
ps4恢复模式重建数据库
网络安全48字