简介
PageHelper主要是用来处理分页
官网https://gitee.com/free/Mybatis_PageHelper (中文版)
它是基于MyBatis的分页插件
使用方法
其他版本可以在官网找到
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.4</version>
</dependency>
在mybatis-config.xml中添加以下配置导入PageInterceptor,它是一个拦截器可以拦截mapper
(也可以使用spring下注入bean导入官网可见)
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
</plugin>
</plugins>
在application中配置mybatis-config.xml和扫描mapper
如果是SpringBoot项目不需要以上配置,只需要加入以下依赖即可
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
在controller层下具体方法:
@RequestMapping("/allBook")
public JSONObject list(){
//页码,个数(只能用于离他最近的一个mapper的select===》如下面的queryAllBook)
PageHelper.startPage(1,10);
List<Books> list = bookService.queryAllBook();
List<Books> list2 = bookService.queryAllBook();
//将一些其他分页信息放入
PageInfo<Books> booksPageInfo = new PageInfo<>(list);
JSONObject jsonObject = new JSONObject();
jsonObject.put("data",booksPageInfo);
return jsonObject;
}
注意:startPage方法只能用于最近的一个mapper查询
可以看到下图中第一个list是十条数据进行分页了,第二个list2就是16条并没分页
如果有控制台日志打印sql的话可以看到,它是自动给我们拼接了一个limit 然后传了一个参数10
这里注意了在mapper下写sql时候一定不要有分号不然就会出现以下情况
下面的参数就是PageInfo里自带的参数,可以进去看看,注释都是中文的