前言
最近项目中用到pagehelper插件,这里总结一下,虽然简单,但怕以后忘记。本文参考意义不大,大牛请忽视。
使用步骤
pom
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
yaml
pagehelper:
helper-dialect: mysql #指定DBMS
reasonable: true
support-methods-arguments: true
params: count=countSql
示例
用下面这张表category为例
controller层
/**
* 分页查询category
* @return
*/
@GetMapping("/list/{page}/{size}")
public QueryResult<Category> getCategoryByPage(@PathVariable(value = "page") int page,
@PathVariable("size") int size) {
return categoryService.getCategoryByPage(page, size);
}
service层
/**
* 分页查询category
*
* @return
*/
public QueryResult<Category> getCategoryByPage(int page, int size) {
PageHelper.startPage(page, size);
Page<Category> categoryPage = categoryMapper.getCategoryByPage(); // 调用dao,返回类型是 Page<>
List<Category> result = categoryPage.getResult(); // 得到result,返回类型是 List<>
// 返回类型封装
QueryResult<Category> queryResult = new QueryResult<>();
queryResult.setList(result);
queryResult.setTotal(result.size());
return queryResult;
}
dao层
返回类型要用Page<分页的模型>
/**
* 分页查询category
* @return
*/
public Page<Category> getCategoryByPage();
Mapper.xml
<select id="getCategoryByPage" resultType="com.xuecheng.framework.domain.course.Category">
select *
from category
</select>
注意
select *
from category 后面没有加 ; 结尾,加了会报错(如下)
后面的limit就是PageHelper作用上去的,加了 ; 号就会报语法错误 /(ㄒoㄒ)/
以上就是一个比较完整的PageHelper使用流程,官网教程也很详细,可以查阅