7-10集成PageHelper实现后端分页(二)

在common项目resp目录下生成PageResp类:

public class PageResp<T> implements Serializable {

    /**
     * 总条数
     */
    private Long total;

    /**
     * 当前页的列表
     */
    private List<T> list;

    public Long getTotal() {
        return total;
    }

    public void setTotal(Long total) {
        this.total = total;
    }

    public List<T> getList() {
        return list;
    }

    public void setList(List<T> list) {
        this.list = list;
    }

    @Override
    public String toString() {
        return "PageResp{" +
                "total=" + total +
                ", list=" + list +
                '}';
    }
}

在Member项目的service层加入queryList类:

 public PageResp<PassengerQueryResp> queryList(PassengerQueryReq req){
        PassengerExample passengerExample = new PassengerExample();
//        criteria会以最后一次为准 如果使用两次  所以需要提取出来只Criteria一次
        PassengerExample.Criteria criteria = passengerExample.createCriteria();
        if ( ObjectUtil.isNotNull(req.getMemberId())){
            criteria.andMemberIdEqualTo(req.getMemberId());
        }
        LOG.info("查询页码:{}", req.getPage());
        LOG.info("每页条数:{}", req.getSize());
//        查第一页查两条     它会对执行的sql进行拦截  会记住做一个分页   然后往下执行碰到的第一个查询他就会做一个分页limit。(后续的就不会执行)
        PageHelper.startPage(req.getPage(),req.getSize());
        List<Passenger> passengerList= passengerMapper.selectByExample(passengerExample);
        PageInfo<Passenger> pageInfo =new PageInfo<>(passengerList);
        LOG.info("总行数:{}", pageInfo.getTotal());
        LOG.info("总页数:{}", pageInfo.getPages());
        List<PassengerQueryResp> list = BeanUtil.copyToList(passengerList, PassengerQueryResp.class);
        PageResp<PassengerQueryResp> PageResp = new PageResp<>();
        PageResp.setTotal(pageInfo.getTotal());
        PageResp.setList(list);
        return PageResp;
    }

在控制层也加入:

@GetMapping("/query-list")
public CommonResp<PageResp<PassengerQueryResp>> queryList(@Valid  PassengerQueryReq req){
    req.setMemberId(LoginMemberContext.getId());
    PageResp<PassengerQueryResp> list = passengerService.queryList(req);
    return new CommonResp<>(list);
}

格式化时间和日期:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值