Grails复用查询条件并分页的实现方法
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,本篇内容介绍了"Grails复用查询条件并分页的实现方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2025年01月25日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安全错误
数据库的锁怎样保障安全
重庆代航网络技术有限公司
类似万方数据库
承德油专计算机网络技术
对数据库技术的展望
vscode操作数据库
建立疫情分析数据库
游戏软件开发项目技术方案
数据库结构模型有哪几种
互联网科技公司的文员
贵阳软件开发工资多少钱
网络安全生产班组模范材料
索尼游戏都用什么软件开发的
网络技术人才年薪待遇
数据库防护安全吗
软件开发中dev是什么
网络安全法六大特征
如何上传到服务器
sql删除数据库语句
block文件导入数据库
游爱网络技术有限公司春节放假
软件开发安卓模拟器没有CPU
会腾软件开发
河北潮流软件开发服务五星服务
川大下载爱如生数据库
网络安全类 控制点
网络安全类专业包括哪些
数据库表 主键
中卫商场系统软件开发
网络安全知识防范手抄报
硬件设施确保网络安全