首页 > 编程学习 > Nutz:自定义取值区间(可分页查询)
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  QueryResult listPage(Dao dao, Class obj, Condition cnd,Pager pager) { 
        List 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
     */
        public 
 QueryResult 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 , 转载请保留.

本文目前尚无任何评论.

发表评论