使用过的分页工具

1、用过最方便的分页还是mybatis plus + Ipage的形式,使用mybatis plus封装好的语句能直接做到数据查询和分页效果。

  @Override
  public IPage<BrainGovTalentSupportGzyxhgzjkPO> pageTalentSupportGzyxhgzjk(Page<BrainGovTalentSupportGzyxhgzjkPO> page) {
    return talentSupportGzyxhgzjkMapper.selectPage(page, null);
  }

2、老的项目里还会用到 PageHelper 这个分页插件,分页的语句要放在sql查询的语句前,这样分页才能生效。

    @Override
    public PageWrapper<ElectricityUpFailReason> electricityUploadFailReason(int year, String city, String county, PageWrapper<ElectricityUpFailReason> page){
        PageHelper.startPage(page.getPageNum(), page.getPageSize());
        List<ElectricityUpFailReason> list = electricityUpFailReasonDao.electricityUploadFailReason(String.valueOf(year),city,county);
        PageInfo pageInfo = new PageInfo(list);
        page.setPageInfo(pageInfo);
        return page;
    }

2.1、有的时候数据库里查询出来的数据合集还需要再简单处理的时候,分页数据还需要重新赋值一下。

@Override
public PageWrapper<EntData> findEntList(EntData entData, PageWrapper<EntData> page) 
PageHelper.startPage(page.getPageNum(), page.getPageSize());
List<EntData> list = entDataDao.findEntList(entData);


{
//数据处理

}

PageInfo pageInfo = new PageInfo(list);
page.setPageInfo(pageInfo);
return page;

2.2、有的时候数据库里查询出来的数据合集还需要复杂的处理数据的时候,分页插件就不好用了,就需要手动去分页。

//手动分页
int listSize = entDataList.size();
page.setTotalRecord(listSize);
page.setTotalPage(listSize %page.getPageSize() == 0 ?  listSize / page.getPageSize() : listSize /page.getPageSize() +1);
page.setResults(entDataList.subList((page.getPageNum()-1)*page.getPageSize() > listSize ? listSize: (page.getPageNum()-1)*page.getPageSize(), page.getPageNum()*page.getPageSize() > listSize ? listSize: page.getPageNum()*page.getPageSize()));

 
//entDataList 是查询的结果
//page 是一个分页数据格式的对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值