(七)SpringBoot使用PageHelper分页插件

二:添加PageHelper依赖

<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <version>1.2.5</version>
</dependency>

  

三:添加PageHelper配置

application.properties中添加

logging.level.com.example.demo.dao=DEBUG
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
pagehelper.page-size-zero=true

  

四:使用方法

UserInfoMapper.xml

<select id="selectAll" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from user_info
</select>

UserInfoMapper

List<UserInfo> selectAll();

UserInfoServiceImpl

@Override
public PageInfo<UserInfo> selectAll(Integer page, Integer size) {
    //开启分页查询,写在查询语句上方
    //每页的数量 pageSize;
    //当前页的数量  size;
    PageHelper.startPage(page, size);
    List<UserInfo> userInfoList = userInfoMapper.selectAll();
    PageInfo<UserInfo> pageInfo = new PageInfo<>(userInfoList);
    return pageInfo;
}    

UserInfoController

@ApiOperation(value = "查询用户", notes = "分页查询用户所有")
@ApiImplicitParams({
        @ApiImplicitParam(name = "page", value = "当前页码",
                dataType = "Integer", paramType = "query"),
        @ApiImplicitParam(name = "size", value = "每页显示条数",
                dataType = "Integer", paramType = "query")
})
@PostMapping("/selectAll")
public RetResult<PageInfo<UserInfo>> selectAll(@RequestParam(defaultValue = "0") Integer page,
                                      @RequestParam(defaultValue = "0") Integer size) {
    PageInfo<UserInfo> pageInfo = userInfoService.selectAll(page, size);
    return RetResponse.makeOKRsp(pageInfo);
}

  

五:PageHelper中默认PageInfo的成员变量介绍

//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list;
//第一页
private int firstPage;
//前一页
private int prePage;
//是否为第一页
private boolean isFirstPage;
//是否为最后一页
private boolean isLastPage;
//是否有前一页
private boolean hasPreviousPage;
//是否有下一页
private boolean hasNextPage;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums; 

  

六:功能测试

地址:http://192.168.1.104:8080/userInfo/selectAll

情况一:不传参数,默认为全查询

情况二:参数 page=2&size=1

  

 

posted @ 2018-09-30 15:22  魔鬼YU天使  阅读(3131)  评论(0编辑  收藏  举报