1. 程式人生 > >【分頁查詢】Page如何做到分頁查詢

【分頁查詢】Page如何做到分頁查詢

分頁查詢是一個非常重要的知識點;
這裡的程式碼不能直接拷貝執行,這裡講的只是個思路;

public PageModel<UserList > selectCheckList (UserList  userList) throws Exception{   PageHelper.startPage(searchVo.getPageIndex(),searchVo.getPageSize(),searchVo.getOrderBy());
        PageModel<UserList> pageModel = new PageModel<>();
        Page pageList = new Page();
pageList.addAll(UserLists); pageModel.setPageIndex(searchVo.getPageIndex()); pageModel.setPageSize(searchVo.getPageSize()); pageModel.setTotal(Long.valueOf(""+requestContext.globalData("rowsCount"))); pageModel.setData(pageList.getResult()); pageModel.setPageCount
(pageList.getPages()); return pageModel ; }

1.gitHub上有開源的Page和PageHelper:


import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;

2.我們需要一個PageModel泛型,這裡的的PageModel<UserList>裡面,要放我們要分頁的物件,是一個集合,就是每一行(這裡的每一行,我們作一個物件處理);
3.這裡的pageModel ,需要設定頁碼(pageIndex),每頁的資料總計條數(pageSize)和所以資料條數(Total);比如,我有50個人的個人資訊,這裡一個人的個人資訊就是一個物件;Total就等於50;每頁我只顯示20條,那麼PageSize就等於20;pageIndex從1變化為3;
4.Page pageList = new Page();

這裡的Page是作為一個容器,用來裝載我的所有資料物件,比如說,我50個人的資訊,組成一個List<個人資訊>,我要把List<個人資訊>都放到pageList裡面,最後,在套在PageMode中;這樣模型和資料都是分開的,比較清晰,就像沙子和模具(一個盒子,即pageModel );沙子是沙子,模具是模具,不會拖泥帶水;
5.pageModel .setData(pageList.getResult());這個方法就是沙子(pageList)和模具(pageModel )之間關係的一個方法,把沙子放到模具中,setData()這個方法,就是放沙子到模具的過程;
6.pageList.addAll(UserLists);是把散的沙子都捧在手裡,就先你在海邊,海邊有許多沙子,你要用手把沙子(50人的資訊),先放在手裡;這個方法就是把我們的分頁的物件(50人的個人資訊)先放在pageList中,然後pageList再把這些打包好的資訊,放到模具(PageModel)中;