【分頁查詢】Page如何做到分頁查詢
阿新 • • 發佈:2019-02-05
分頁查詢是一個非常重要的知識點;
這裡的程式碼不能直接拷貝執行,這裡講的只是個思路;
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();
List<個人資訊>
,我要把List<個人資訊>
都放到pageList裡面,最後,在套在PageMode中;這樣模型和資料都是分開的,比較清晰,就像沙子和模具(一個盒子,即pageModel );沙子是沙子,模具是模具,不會拖泥帶水; 5.
pageModel .setData(pageList.getResult());
這個方法就是沙子(pageList)和模具(pageModel )之間關係的一個方法,把沙子放到模具中,setData()這個方法,就是放沙子到模具的過程; 6.
pageList.addAll(UserLists);
是把散的沙子都捧在手裡,就先你在海邊,海邊有許多沙子,你要用手把沙子(50人的資訊),先放在手裡;這個方法就是把我們的分頁的物件(50人的個人資訊)先放在pageList中,然後pageList再把這些打包好的資訊,放到模具(PageModel)中;