1.引入jar包
com.github.pagehelper:pagehelper:4.1.0
2.mybatis-config.xml配置文件添加以下代碼
<plugins> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql"/> <!-- 該參數默認爲false --> <!-- 設置爲true時,會將RowBounds第一個參數offset當成pageNum頁碼使用 --> <!-- 和startPage中的pageNum效果一樣--> <property name="offsetAsPageNum" value="true"/> <!-- 該參數默認爲false --> <!-- 設置爲true時,使用RowBounds分頁會進行count查詢 --> <property name="rowBoundsWithCount" value="true"/> <!-- 設置爲true時,如果pageSize=0或者RowBounds.limit = 0就會查詢出全部的結果 --> <!-- (相當於沒有執行分頁查詢,但是返回結果仍然是Page類型)--> <property name="pageSizeZero" value="true"/> <!-- 3.3.0版本可用 - 分頁參數合理化,默認false禁用 --> <!-- 啓用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最後一頁 --> <!-- 禁用合理化時,如果pageNum<1或pageNum>pages會返回空數據 --> <property name="reasonable" value="false"/> <!-- 3.5.0版本可用 - 爲了支持startPage(Object params)方法 --> <!-- 增加了一個`params`參數來配置參數映射,用於從Map或ServletRequest中取值 --> <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默認值 --> <!-- 不理解該含義的前提下,不要隨便複製該配置 --> <property name="params" value="pageNum=pageHelperStart;pageSize=pageHelperRows;"/> <!-- 支持通過Mapper接口參數來傳遞分頁參數 --> <property name="supportMethodsArguments" value="false"/> <!-- always總是返回PageInfo類型,check檢查返回類型是否爲PageInfo,none返回Page --> <property name="returnPageInfo" value="none"/> </plugin> </plugins>
3.執行查詢sql前設定分頁參數
PageHelper.startPage(userParam.getPageNum(), userParam.getPageSize(), true);例如:
public PageInfos getUserList(UserParam userParam){ PageHelper.startPage(userParam.getPageNum(), userParam.getPageSize(), true); Page<UserPojo> userPojos = userReadMapper.getUserList(userParam); PageInfo<UserPojo> data = new PageInfo<>(userPojos); return UtilTools.pageChange(data,userPojos); }
PageInfo類中屬性字段太多,對其進行簡化
public static PageInfos pageChange(PageInfo<?> data, Page page) { if (data == null) { return null; } PageInfos pageInfos = new PageInfos(); try { pageInfos.setPageNo(data.getPageNum()); pageInfos.setPageSize(data.getPageSize()); pageInfos.setTotalCount(data.getTotal()); pageInfos.setPageCount(data.getPages()); pageInfos.setData(data.getList()); } catch (Exception e) { } return pageInfos; }