美文网首页
PageInfo分页修改总页数

PageInfo分页修改总页数

作者: 淡定_2407 | 来源:发表于2020-03-03 11:35 被阅读0次

在项目中出现一条记录需要进行2行显示,即源数据查询5条,在页面上行需要展示10条;

示例如下:

如果源数据为7条,页面传送参数如下:

页码:1,展示数量:10;

需返回:页码:1,展示数量:10,总条数为14;

页码:2,展示数量:10;

需返回:页码:1,展示数量:4,总条数为14;

此时如果使用了PageInfo对象,需要先对参数的页面展示数/2进行源表查询;

Integer pageNum = (dto.getPageNum() ==null || dto.getPageNum() <1) ?1 : dto.getPageNum();

//由于前台页面同一条数据要显示2条,所以后台展示的数量需要/2

Integer pageSize = dto.getPageSize() ==null ?5 : dto.getPageSize() /2;

PageHelper.startPage(pageNum, pageSize);

//获取缺口数

List list =stockGapsMapper.list(dto);

PageInfo<StockGapsDto> orgPageInfo = new PageInfo<>(list);

System.out.println("----------1");

stockGapsMapper.list(dto);

System.out.println("----------2");

PageHelper.startPage(pageNum, pageSize);

stockGapsMapper.list(dto);

需要注意的是PageHelper.startPage只对最近一次的查询起作用,且需要对返回的总记录数*2,只需将对应的查询,新建一个查询语句 *_COUNT即可完成匹配,如下--查询的语句为:list,获取总条数则用:list_COUNT:

<select id="list" resultMap="baseMap">

    select*,a.available_stock - IFNULL(b.consume_stock ,0) gaps_stock

    from stock_detail_book 

    where org_code = #{orgCode}

</select>

<select id="list_COUNT" resultType="Long">

    selectcount(1)*2

    from stock_detail_book

    where org_code = #{orgCode}

</select>

PageHelper会自动进行分页,可以查看到参数LIMIT ,如果是第3页,参数是2个(10,5)--第一个参数是页码(2)*展示数量(5)=10,第二个参数是展示数量,执行日志如下:

2020-03-03 10:31:26.962 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list_COUNT : 145 ] - ==> Preparing: select count(1) from stock_detail_book where  org_code = ? 

2020-03-03 10:31:26.963 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list_COUNT : 145 ] - ==> Parameters: JD(String)

2020-03-03 10:31:26.980 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list_COUNT : 145 ] - <==      Total: 1

2020-03-03 10:31:26.982 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list : 145 ] - ==>  Preparing: select *,a.available_stock - IFNULL(b.consume_stock ,0) gaps_stock from stock_detail_book where  org_code = ?  LIMIT ?

2020-03-03 10:31:26.982 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list : 145 ] - ==> Parameters: JD(String), 5(Integer)

2020-03-03 10:31:27.006 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list : 145 ] - <==      Total: 5

----------1

2020-03-03 10:31:30.663 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list : 145 ] - ==>  Preparing: select *,a.available_stock - IFNULL(b.consume_stock ,0) gaps_stock from stock_detail_book where  org_code = ? 

2020-03-03 10:31:30.761 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list : 145 ] - ==> Parameters: JD(String)

2020-03-03 10:31:32.202 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list : 145 ] - <==      Total: 7

----------2

2020-03-03 10:31:38.553 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list_COUNT : 145 ] - ==>  Preparing:  select count(1) from stock_detail_bookwhere  org_code = ? 

2020-03-03 10:31:38.651 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list_COUNT : 145 ] - ==> Parameters: JD(String)

2020-03-03 10:31:38.765 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list_COUNT : 145 ] - <==      Total: 1

2020-03-03 10:31:39.004 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list : 145 ] - ==>  Preparing: select *,a.available_stock - IFNULL(b.consume_stock ,0) gaps_stock from stock_detail_book where  org_code = ? LIMIT ?

2020-03-03 10:31:39.104 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list : 145 ] - ==> Parameters: JD(String),  5(Integer)

2020-03-03 10:31:40.247 [lms-stock-service] [ http-nio-7600-exec-1 ] DEBUG [c.a.h.lms.stock.dao.IStockGapsMapper.list : 145 ] - <==      Total: 5

上一部分的代码可以获取总数,但我们返回参数时,仍需将展示的页码修改为10 ,返回对象进行替换,代码如下:

orgPageInfo.setPageSize(pageSize*2);

orgPageInfo.setList(listResponse);

相关文章

  • PageInfo分页修改总页数

    在项目中出现一条记录需要进行2行显示,即源数据查询5条,在页面上行需要展示10条; 示例如下: 如果源数据为7条,...

  • 分页计算总页数

    第一种 第二种 -- 推荐

  • JS的分页算法

    分页的总页数算法 分页算法 分页存储过程或者页面分页中的分页算法: int pagesize // 每页记录数 i...

  • Mbatis分页插件,使用方式,和注意事项

    方式一 方式二,直接获取pageinfo 分页不安全 什么时候会导致不安全的分页?PageHelper 方法使用了...

  • 分析一个爬虫的分页问题

    接着这篇《Python爬取数据的分页分析》,最后的难点地方:滚动分页,不知道总页数的情况,如何确定爬虫的分页抓取。...

  • PageHelper 分页插件只用Page、不用PageInfo

    PageHelper 分页插件,学到的写法是得到Page 对象后再转成PageInfo 对象,但Page 是Arr...

  • 2018-10-10:分页

    分页 真分页使用特定的sql语句,条件查询出指定内容 假分页数据全部取出,在页面分页显示 分页数据pageSize...

  • 关于分页

    分页的总页数算法 设总记录数:totalRecord每页最大记录数:maxResult 算法一:totalPage...

  • node mysql分页查询同时返回数据总条数

    返回数据格式为 查询代码 分为两次查询,一次查询分页数据,一次查询总页数

  • 简单分页实现

    传值: pages(总页数)和currentpage(当前页) 分页代码:(freemarke) 引用处: 控制层...

网友评论

      本文标题:PageInfo分页修改总页数

      本文链接:https://www.haomeiwen.com/subject/quoflhtx.html