通過mybatis-plus的分頁插件,實現分頁


 

簡單查詢的分頁

  如果查詢結果為單表查詢,例如查詢用戶列表,則可以調用mybatis plus的自動生成的mapper中的selectPage()或者selectMapsPage()方法

  Page類的構造函數中第一個參數為當前查詢第幾頁,第二個參數為每頁的記錄數。 

image_1c4mrp2brphr1313asoset1bb155.png-21.4kB

 

復雜查詢的分頁

  若查詢結果是關聯多個表的操作,則需要用到自定義的mapper,此時的分頁操作也很簡單,只需要給mapper的第一個參數設置為Page對象即可

  例如Guns中LogController中的查詢操作日志列表,用的就是復雜查詢的分頁,我們可以看到在mybatis接口的第一個參數中,傳遞了Page對象,

  當mybatis執行此方法的時候,會被mybatis-plus的分頁插件自動攔截到,並且把分頁查詢的結果返回到這個Page對象中!

  如下:

 image_1c4ms4v6sg343nu1tmq1u1o10j65i.png-28.4kB 

 

獲取前端表格插件傳值

  前端表格用的Layui Table插件(https://www.layui.com/doc/modules/table.html,在前端執行查詢時,插件會自動往后台傳遞分頁參數,並且默認的格式如下,

image_1db1m4rblj6hhs154ficc1puf9.png-25.2kB

  Layui Table會傳遞page(第幾頁)limit(每頁條數)這兩個參數,與之對應,后台封裝了一個通用的接受分頁參數的類LayuiPageFactory

  從而不用每次都來request.getParameter()這樣接收參數,如下所示,

public class LayuiPageFactory {

    public static Page defaultPage() {
        HttpServletRequest request = HttpContext.getRequest();

        //每頁多少條數據
        int limit = Integer.valueOf(request.getParameter("limit"));

        //第幾頁
        int page = Integer.valueOf(request.getParameter("page"));

        return new Page(page, limit);
    }

    public static LayuiPageInfo createPageInfo(IPage page) {
        LayuiPageInfo result = new LayuiPageInfo();
        result.setCount(page.getTotal());
        result.setData(page.getRecords());
        return result;
    }

}

  在后台代碼中如需接收參數,構建分頁Page對象的時候,只需如下這樣一調用即可構建分頁對象

Page page = LayuiPageFactory.defaultPage();

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM