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