为什么PageHelper.startPage(pageNum,pageSize);要写最上面

问题:

今天再网上学习一个SSM项目,发现自己不理解为什PageHelper.startPage(pageNum,pageSize);要写最上面,特此记录一下。

原因:

1.pageHelper主要是利用mybatis的拦截器完成的,它需要知道pageNum,pageSize参数。

2.机制是在sql查询语句中拼接limit,这样也可以提高效率。

select * from product_info 

 拼接 limit () ();

select * from product_info limit 0,5;

3.你想想,如果先查询出来,那就没办法拼接了,而且如果查询出来,再对很大的数据进行分页,也很麻烦。

@Override
    public PageInfo splitPage(int pageNum, int pageSize) {
       PageHelper.startPage(pageNum,pageSize);

        ProductInfoExample productInfoExample = new ProductInfoExample();
        productInfoExample.setOrderByClause("p_id desc");
        List<ProductInfo> productInfos = productInfoMapper.selectByExample(productInfoExample);

        PageInfo<ProductInfo> productInfoPageInfo = new PageInfo<>(productInfos);

        return productInfoPageInfo;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值