NutzCN Logo
问答 自定义SQL 分页 如何获取记录总数
发布于 1852天前 作者 Hamming 2112 次浏览 复制 上一个帖子 下一个帖子
标签:

Sql sql = Sqls.queryEntity("SELECT * FROM t_pet");
sql.setPager(dao.createPager(2,20));
sql.setEntity(dao.getEntity(Pet.class));
dao.execute(sql);
return sql.getList(Pet.class);

自定义SQL 分页 如何获取记录总数
sql 无法获取 Pager

4 回复

酱紫 不知道 行不行

  Pager pager =dao.createPager(pageNumber, pageSize);
        sql.setPager(pager);
pager.getRecordCount() 

https://github.com/Wizzercn/NutzWk/blob/nutzboot-dubbo/wk-framework/src/main/java/cn/wizzer/framework/base/service/BaseServiceImpl.java

 /**
     * 分页查询(sql)
     *
     * @param pageNumber
     * @param pageSize
     * @param sql
     * @return
     */
    public Pagination listPage(Integer pageNumber, int pageSize, Sql sql) {
        pageNumber = getPageNumber(pageNumber);
        pageSize = getPageSize(pageSize);
        Pager pager = this.dao().createPager(pageNumber, pageSize);
        pager.setRecordCount((int) Daos.queryCount(this.dao(), sql));// 记录数需手动设置
        sql.setPager(pager);
        sql.setCallback(Sqls.callback.records());
        this.dao().execute(sql);
        return new Pagination(pageNumber, pageSize, pager.getRecordCount(), sql.getList(Record.class));
    }

    /**
     * @param pageNumber
     * @param sql        查询语句
     * @param countSql   统计语句
     * @return
     */
    public Pagination listPage(Integer pageNumber, Sql sql, Sql countSql) {
        return listPage(pageNumber, DEFAULT_PAGE_NUMBER, sql, countSql);
    }

    /**
     * @param pageNumber
     * @param pageSize
     * @param sql        查询语句
     * @param countSql   统计语句
     * @return
     */
    public Pagination listPage(Integer pageNumber, int pageSize, Sql sql, Sql countSql) {
        pageNumber = getPageNumber(pageNumber);
        pageSize = getPageSize(pageSize);
        Pager pager = this.dao().createPager(pageNumber, pageSize);
        countSql.setCallback(Sqls.callback.integer());
        this.dao().execute(countSql);
        pager.setRecordCount(countSql.getInt());// 记录数需手动设置
        sql.setPager(pager);
        sql.setCallback(Sqls.callback.records());
        this.dao().execute(sql);
        return new Pagination(pageNumber, pageSize, pager.getRecordCount(), sql.getList(Record.class));
    }
添加回复
请先登陆
回到顶部