Grails复用查询条件并分页的实现方法
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本篇内容介绍了"Grails复用查询条件并分页的实现方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2024年11月24日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安全错误
数据库的锁怎样保障安全
浙江网络技术分类创新服务
cod13怎么切换服务器
数据库创建正确方法
php7 数据库
成都软件开发培训学校哪个好
西安足浴软件开发
sw如何查看螺纹规格数据库
世界互联网领先科技发布
广州5g网络技术培训班
杨凌网络安全宣传
数据库安全保护目标是什么
能源领域网络安全规划
开房数据库下载
软件开发需要投资吗
筑牢网络安全堡垒
湖北中公职位数据库
服务器扩容硬盘教程
服务器扩容
汽车网络技术产生的背景
地下城手游app服务器维护
廊坊网络技术操作
360奇酷互联网科技公司
硬盘数据库的内存是什么
上海本地网络技术哪家好
家里数据库映射到外网
企业服务器系统供应商
服务器兼容软件
局域网如何使用连接数据库服务器
广州学习软件开发学校
429首都网络安全日答题