Spring Boot集成pagehelper分页插件


在我们的项目中经常要用到查询的分页,这也是一个非常实用的功能,在这里我记录一下springboot集成pagehelper这个分页查询插件

1、在pom.xml中添加pagehelper依赖

在pom.xml中添加下面的代码:

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

2、修改配置文件

在application.properties添加如下代码:

#pagehelper分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

3、修改Controller里面的查询方法

加上参数@RequestParam(defaultValue = "1") int pageNo, @RequestParam(defaultValue = "10") int pageSize),两个参数表示页号和每页大小;然后加上PageHelper.startPage(pageNo,pageSize); 表示使用这个插件。
其他代码和之前一样。
具体代码如下:

    //查找所有用户
    @ResponseBody
    @RequestMapping("/user/findAllUsers")
    public ResultInfo findAllUsers(@RequestParam(defaultValue = "1") int pageNo, @RequestParam(defaultValue = "10") int pageSize){
        try{
            PageHelper.startPage(pageNo,pageSize);
            List<User> users = userService.findAllUsers();
            if (users.size()<=0){
                info.setCode(Code.NODATA);
                return info;
            }
            HashMap<String,Object> userHashMap = new HashMap<>();
            userHashMap.put("users",users);
            info.setData(userHashMap);
            return info;
        }catch (Exception e){
            e.printStackTrace();
        }
        info.setCode(Code.NODATA);
        return info;
    }

postman测试结果:
在这里插入图片描述
需要注意的是,分页代码PageHelper.startPage(pageNo,pageSize);只对其后的第一个查询有效。如把代码改为下面这样,添加一个查询,则第二个查询并没有分页

            PageHelper.startPage(pageNo,pageSize);
            List<User> users = userService.findAllUsers(); //这个查询会分页
            List<User> users1 = userService.findAllUsers(); //这个查询不会分页

4、返回分页信息

有时候,我们的业务需要我们返回分页的信息,这时候我们要对controller、service、mapper里的方法的返回值做一下修改,将List改为Page,Page是com.github.pagehelper包里的类,它是java.util.ArrayList的子类。

1. 修改UserMapper

// List<User> selectAll();
Page<User> selectAll();

2. 修改UserService

//List<User> findAllUsers();
 Page<User> findAllUsers();

3. 修改UserServiceImpl


//    @Override
//    public List<User> findAllUsers() {
//        return userMapper.selectAll();
//    }
    @Override
    public Page<User> findAllUsers() {
        return userMapper.selectAll();
    }

4. 用com.github.pagehelper.PageInfo类封装Page数据

关键代码:

PageInfo<User> pageInfo = new PageInfo<>(userService.findAllUsers());

完整代码如下:

    //查找所有用户
    @ResponseBody
    @RequestMapping("/user/findAllUsers")
    public ResultInfo findAllUsers(@RequestParam(defaultValue = "1") int pageNo, @RequestParam(defaultValue = "10") int pageSize){
        try{
            PageHelper.startPage(pageNo,pageSize);
            PageInfo<User> pageInfo = new PageInfo<>(userService.findAllUsers());
            if (pageInfo.getSize()<=0){
                info.setCode(Code.NODATA);
                return info;
            }
            HashMap<String,Object> userHashMap = new HashMap<>();
            userHashMap.put("users",pageInfo);
            info.setData(userHashMap);
            return info;
        }catch (Exception e){
            e.printStackTrace();
        }
        info.setCode(Code.NODATA);
        return info;
    }

5. 测试

结果如下:
它返回了页面的很多信息
在这里插入图片描述
自此,简单的Spring Boot集成pagehelper分页插件就完成啦!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值