簡單查詢的分頁
如果查詢結果為單表查詢,例如查詢用戶列表,則可以調用mybatis plus的自動生成的mapper中的selectPage()
或者selectMapsPage()
方法,
Page
類的構造函數中第一個參數為當前查詢第幾頁,第二個參數為每頁的記錄數。
復雜查詢的分頁
若查詢結果是關聯多個表的操作,則需要用到自定義的mapper,此時的分頁操作也很簡單,只需要給mapper的第一個參數設置為Page
對象即可,
例如Guns中LogController
中的查詢操作日志列表
,用的就是復雜查詢的分頁,我們可以看到在mybatis接口的第一個參數中,傳遞了Page
對象,
當mybatis執行此方法的時候,會被mybatis-plus的分頁插件自動攔截到,並且把分頁查詢的結果返回到這個Page
對象中!
如下:
獲取前端表格插件傳值
前端表格用的Layui Table插件(https://www.layui.com/doc/modules/table.html),在前端執行查詢時,插件會自動往后台傳遞分頁參數,並且默認的格式如下,
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();