添加项目依赖
<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);
}