SpringBoot使用pageHelper

pom文件增加依赖(只service需要)

  <!--mybatis-->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.1</version>
    </dependency>
    <!--mapper-->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>1.2.4</version>
    </dependency>
    <!--pageHelper-->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.3</version>
        <exclusions>
            <exclusion>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
**注意解决依赖冲突**

application.proprieties

pagehelper.helperDialect=mysql
pagehelper.reasonable=true  #为了使用输入页数为负或者超出最大页时候使页数为最小或最大值
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

代码范例

service
   public PageInfo findAllUser(int pageNum, int pageSize) {
    PageHelper.startPage(pageNum, pageSize);
    List<User> users = userMapper.selectAllUser();
    List<UserDto> userDtos = new ArrayList<>();

    users.forEach(user -> {
        userDtos.add(dozerBeanMapper.map(user, UserDto.class));
    });
    // 用PageInfo对结果进行包装
    PageInfo pageInfo = new PageInfo(users);
    pageInfo.setList(userDtos);
    return pageInfo;
}

controller
@ResponseBody
@RequestMapping(value = "/all/{pageNum}/{pageSize}", produces = {"application/json;charset=UTF-8"})
public PageInfo findAllUser(@PathVariable("pageNum") int pageNum, @PathVariable("pageSize") int pageSize) {

    logger.info(String.valueOf(userService.findAllUser(pageNum, pageSize)));
    return userService.findAllUser(pageNum, pageSize);
}

请求及返回结果
    {
  "pageNum": 0,
  "pageSize": 5,
  "size": 5,
  "startRow": 1,
  "endRow": 5,
  "total": 14,
  "pages": 3,
  "list": [
    {
      "userId": 1000,
      "userName": "姓名",
      "password": "123456",
      "phone": "18123568978"
    },
    {
      "userId": 1001,
      "userName": "姓名",
      "password": "123456",
      "phone": "18123568978"
    },
    {
      "userId": 1002,
      "userName": "姓名",
      "password": "123456",
      "phone": "18123568978"
    },
    {
      "userId": 1003,
      "userName": "姓名",
      "password": "123456",
      "phone": "18123568978"
    },
    {
      "userId": 1004,
      "userName": "姓名",
      "password": "123456",
      "phone": "18123568978"
    }
  ],
  "prePage": 0,
  "nextPage": 1,
  "isFirstPage": false,
  "isLastPage": false,
  "hasPreviousPage": false,
  "hasNextPage": true,
  "navigatePages": 8,
  "navigatepageNums": [
    1,
    2,
    3
  ],
  "navigateFirstPage": 1,
  "navigateLastPage": 3,
  "firstPage": 1,
  "lastPage": 3
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,397评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,054评论 6 342
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,344评论 25 709
  • 软件要上线了。最近的感觉很不舒服:一个原因是因为工作让我感觉心里好累,每天加班很长时间,可能上线以后就会好一些,不...
    木头与琉璃阅读 1,475评论 0 0
  • 瀏覽器自動化 browser automation 自動化腳本 Writing Scripts 友好圖形介面 G...
    qianzib阅读 1,046评论 0 1