springboot pageIPageHelper分页插件使用

 

一、引入分页依赖

PageHelper github :https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md

      <dependency>
          <groupId>com.github.pagehelper</groupId>
          <artifactId>pagehelper</artifactId>
          <version>5.1.8</version>
      </dependency>

    <!--springboot  pagehelper-->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.3</version>
    </dependency>

 

二、配置方言参数

yml文件中配置方式

#分页插件
#reasonable 分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页
#supportMethodsArguments 支持通过 Mapper 接口参数来传递分页参数
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true

三、项目中具体使用

 

api代码
@PostMapping(value = "studentPage")
public PageInfo<Student> Helper(Integer pageNum,Integer pageSize ){
    PageInfo pageInfo = studentService.listForPage(pageNum,pageSize);
    return pageInfo;
}



service代码
public PageInfo listForPage(Integer pageNum,Integer pageSize){
    // 设定当前页码,以及当前页显示的条数
    PageHelper.startPage(pageNum, pageSize);  
    //PageHelper.offsetPage(pageNum, pageSize);也可以使用此方式进行设置
    List<Student> list = studentMapper.selectList();
    PageInfo<Student> pageInfo = new PageInfo<Student>(list);
    return pageInfo;
}

或者

public PageInfo listForPage(Integer pageNum,Integer pageSize){
    PageInfo<Student> pageInfo = PageHelper.startPage(1, 10).doSelectPageInfo(() -> studentMapper.selectList());
    return pageInfo;
}

 

四、注意

5.0.4版本后支持使用手写的 count 查询

例如,如果存在下面两个查询:

<select id="selectLeftjoin" resultType="com.github.pagehelper.model.User">
    select a.id,b.name,a.py from user a
    left join user b on a.id = b.id
    order by a.id
</select>
<select id="selectLeftjoin_COUNT" resultType="Long">
    select count(distinct a.id) from user a
    left join user b on a.id = b.id
</select>

上面的 countSuffix 使用的默认值 _COUNT,分页插件会自动获取到 selectLeftjoin_COUNT 查询,这个查询需要自己保证结果数正确。

返回值的类型必须是resultType="Long",入参使用的和 selectLeftjoin 查询相同的参数,所以在 SQL 中要按照 selectLeftjoin 的入参来使用。

因为 selectLeftjoin_COUNT 方法是自动调用的,所以不需要在接口提供相应的方法,如果需要单独调用,也可以提供。

详情查看5.0.4更新日志描述:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/Changelog.md

 

PageHelper.startPage(pageNum, pageSize);要紧跟 select

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值