場景:有許多商品,前端通過分頁來展示這些商品
1、邏輯部分
- 調用 PageHelper 的 startPage
- 把全部的 Product 通過 sql 從數據庫中取出(mybatis pager 會自動幫我們取出所傳參數的數量)
- 創建 pageInfo 把 全部的 Product 當做參數傳入
public ServerResponse<PageInfo> getProductList(int pageNum, int pageSize){
PageHelper.startPage(pageNum, pageSize);
List<Product> productList = productMapper.selectList(pageNum, pageSize);
PageInfo pageResult = new PageInfo(productList);
return ServerResponse.createBySuccess(pageResult);
}
- 若從數據庫取出的Product不合要求,需要修改,可用下面的代碼,不需修改則跳過
public ServerResponse<PageInfo> getProductList(int pageNum, int pageSize){
PageHelper.startPage(pageNum, pageSize);
List<Product> productList = productMapper.selectList(pageNum, pageSize);
List<newProduct> newProductList = Lists.newArrayList();
for(Product productItem : productList){
newProduct newProductItem = change(productItem);
newProductList.add(newProductItem);
}
PageInfo pageResult = new PageInfo(productList);
pageResult.setList(mewProductList);
return ServerResponse.createBySuccess(pageResult);
}
2、sql部分
- mybatis pager 會自動在後面加上
limit #{pageSize} offset #{pageNum}
<select id="selectList" resultMap="BaseResultMap">
select <include refid="Base_Column_List" /> from mmall_product
order by id asc
</select>