201312 月15
Nutz:自定义取值区间(可分页查询)
使用示例:
/** 你可以自定义取数据区间的值,如下: offset=0,count=5 取0到5的记录 offset=5,count=10 取5到15的记录 page=3, offset=15,count=20 取15到35的记录 **/ int offset=0; int count=5; ExplicitPager pager=new ExplicitPager(offset,count); QueryResult file=daoCtl.listPage(dao, Oa_doc_file.class, cri,pager);
ExplicitPager 类源码:
package com.hits.common.page; import org.nutz.dao.pager.Pager; /** * 类描述: * 创建人:Wizzer * 联系方式:www.wizzer.cn * 创建时间:2013-12-12 下午3:16:21 * @version */ public class ExplicitPager extends Pager { private static final long serialVersionUID = 1L; int offset; int count; public ExplicitPager(int offset, int count) { super(); this.offset = offset; this.count = count; } public void setOffset( int offset) { this.offset = offset; } public void setSelectCount( int count) { this.count = count; } @Override public int getPageSize() { return count; } @Override public int getOffset() { return offset; } }
分页源代码(可参考上一篇文章,实现自定义SQL多表分页区间取值):
/** * 根据查询条件分页,返回封装好的QueryResult对象 * * @param dao * @param obj * @param cnd * @param pager * @return */ public <T> QueryResult listPage(Dao dao, Class<T> obj, Condition cnd,Pager pager) { List<T> list = dao.query(obj, cnd, pager); pager.setRecordCount(dao.count(obj, cnd));// 记录数需手动设置 return new QueryResult(list, pager); } /** * 根据自定义SQL分页,返回封装好的QueryResult对象 * @param dao * @param sql * @param pager * @return */ publicQueryResult listPageSql(Dao dao, Sql sql, Pager pager) { if(pager==null) return null; pager.setRecordCount(Daos.queryCount(dao, sql.getSourceSql()));// 记录数需手动设置 sql.setPager(pager); sql.setCallback(Sqls.callback.records()); dao.execute(sql); return new QueryResult(sql.getList(Map.class), pager); }
本文地址:https://wizzer.cn/archives/2812 , 转载请保留.