使用Maven来管理项目
<!-- 引入mybatis的 pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
在mybatis的全局配置文件中配置PageHelper分页插件
<plugins>
<!-- com.github.pagehelper 为 PageHelper 类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库-->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
PageHelper是基于拦截器实现的,使用它,需要先调用startPage给予对应的参数 int pageNum, int pageSize(它必须紧挨着查询语句)
在Service中的代码
public PageInfo<BcStaff> findPage(PageQuery pageQuery) {
//利用PageHelper分页查询 注意:这个一定要放查询语句的前一行,否则无法进行分页,因为它对紧随其后第一个sql语句有效
// PageHelper.startPage(pageNum, pageSize);
//pageNum第几页,一页多少数据
//由于本次前端请求的需要数据为(page:1, rows10),且我已经创建了pageQuery工具类
//我按顺序依次传入工具类的值即可
PageHelper.startPage(pageQuery.getPage(), pageQuery.getRows());
//Mapper只需调用一次查询方法
List<BcStaff> bcStaffs = bcStaffMapper.selectByExample(null);
//将查询结果放在PageInfo中
PageInfo<BcStaff> pageInfo = new PageInfo<BcStaff>(bcStaffs);
return pageInfo;
}
Pageinfo的使用方法,使用第2或者第三个(构造)方法,就可以使用右侧的属性了。
它有三个构造方法 List<T>为需要分页的的集合,int为navigatePages(译为默认显示第几页)
总结:
需要使用 PageHelper.startPage(pageNum, pageSize); 执行Mapper查询语句,将结果放在PageInfo中,就可以使用PageInfo的属性了。