问题:
今天再网上学习一个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;
}