JAVA——mybatis pager的應用

場景:有許多商品,前端通過分頁來展示這些商品


1、邏輯部分

  1. 調用 PageHelper 的 startPage
  2. 把全部的 Product 通過 sql 從數據庫中取出(mybatis pager 會自動幫我們取出所傳參數的數量)
  3. 創建 pageInfo 把 全部的 Product 當做參數傳入
	/**
     * @param pageNum 第幾頁
     * @param pageSize 每頁展示多少個
     * ServerResponse 是我所創建的通用的類,不想用去掉即可
     */
    public ServerResponse<PageInfo> getProductList(int pageNum, int pageSize){
        PageHelper.startPage(pageNum, pageSize);
        List<Product> productList = productMapper.selectList(pageNum, pageSize); //調用sql查詢
        PageInfo pageResult = new PageInfo(productList);
        return ServerResponse.createBySuccess(pageResult);
    }
  • 若從數據庫取出的Product不合要求,需要修改,可用下面的代碼,不需修改則跳過
/**
     * @param pageNum 第幾頁
     * @param pageSize 每頁展示多少個
     * newProduct是自定義的新的類
     * ServerResponse 是我所創建的通用的類,不想用去掉即可
     */
    public ServerResponse<PageInfo> getProductList(int pageNum, int pageSize){
		PageHelper.startPage(pageNum, pageSize);
        List<Product> productList = productMapper.selectList(pageNum, pageSize); // 調用sql查詢
        List<newProduct> newProductList = Lists.newArrayList();
        for(Product productItem : productList){
            newProduct newProductItem = change(productItem);
            newProductList.add(newProductItem);
        }
        PageInfo pageResult = new PageInfo(productList);
        pageResult.setList(mewProductList); // !!!需要用setList重構
        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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章