添加項目依賴
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.0.3</version>
</dependency>
修改mybatis核心配置文件,添加plugin
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 4.0.0之後版本能夠不設置該參數 -->
<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="false"/>
<!-- 3.3.0版本可用 - 分頁參數合理化,默認false禁用 -->
<!-- 啓用合理化時,若是pageNum<1會查詢第一頁,若是pageNum>pages會查詢最後一頁 -->
<!-- 禁用合理化時,若是pageNum<1或pageNum>pages會返回空數據 -->
<property name="reasonable" value="true"/>
<!-- 3.5.0版本可用 - 爲了支持startPage(Object params)方法 -->
<!-- 增長了一個`params`參數來配置參數映射,用於從Map或ServletRequest中取值 -->
<!-- 能夠配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默認值 -->
<!-- 不理解該含義的前提下,不要隨便複製該配置 -->
<property name="params" value="pageNum=start;pageSize=limit;"/>
<!-- 支持經過Mapper接口參數來傳遞分頁參數 -->
<property name="supportMethodsArguments" value="true"/>
<!-- always老是返回PageInfo類型,check檢查返回類型是否爲PageInfo,none返回Page -->
<property name="returnPageInfo" value="check"/>
</plugin>
示例
PageList<SettleFlowPendingModel> pageList = new PageList<SettleFlowPendingModel>();
Paginator pageNav = new Paginator();
pageNav.setItemsPerPage(pageSize > 0 ? pageSize : 10);
int count = settleFlowPendingMapper.countByExample(testExample);
if (count > 0) {
pageNav.setItems(count);
pageNav.setPage(page > 0 ? page : 1);
//設置頁碼和每頁的數量,緊跟着的第一個select方法會被分頁
PageHelper.startPage(pageNav.getPage(), pageSize);
//該select會被分頁查詢
List<SettleFlowPending> list = settleFlowPendingMapper.selectByExample(testExample);
pageList.addAll(convert.convert2Model(list, SettleFlowPendingModel.class));
pageList.setPaginator(pageNav);
}