PageHelper是github上一个开源的分页插件
PageHelper的使用方法:
1.先引入Maven依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.8</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>
PS:开发环境为Springboot 2.1.1 所以必须添加上面的pagehelper-spring-boot-starter依赖,如果不添加则不会有分页的效果(我 就是在这里踩了坑)
2.具体代码实现:
- controller:
@Autowired
private IMyService iMyService;
/**
* 分页--获取用户所有动态的方法
*
* @param request
* @param pageNum 显示第几页
* @param pageSize 一页显示几条
* @return
*/
@GetMapping("/get/article")
public ServerResponse getMyArticle(HttpServletRequest request,
@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
@RequestParam(value = "pageSize", defaultValue = "5") int pageSize) {
User user = (User) request.getSession().getAttribute(Const.SESSION_USER);
if (user == null) {
return ServerResponse.createByErrorMessage("未登录,请先登录!");
}
return iMyService.getUserAllArticle(user.getId(), pageNum, pageSize);
}
- service
/**
@param pageNum:查看分页结果的第几页
@param pageSize: 一页显示几条查询结果
**/
@Override
public ServerResponse getUserAllArticle(Long userId, int pageNum, int pageSize) {
//startPage--start
//填充自己的sql查询逻辑
//pageHelper-收尾
PageHelper.startPage(pageNum, pageSize);
List<Article> articleList = articleMapper.getAllArticleByUserId(userId);
//用PageInfo对结果进行包装
PageInfo articlePageInfo = new PageInfo(articleList);
return ServerResponse.createBySuccess("该用户的全部动态信息", articlePageInfo);
}
- mapper层(mapper不需要修改 插件会自动分页)
<select id="getAllArticleByUserId" parameterType="long" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sloth_article
WHERE author_id = #{userId}
</select>