springBoot使用pageHelper进行分页

方式一:使用原生的PageHelper

1.在pom.xml中引入依赖

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

2.在项目里面添加配置

@Configuration
public class MybatisConfig {
 
    @Bean
    public PageHelper pageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties p = new Properties();
        p.setProperty("dialect", "Mysql");
        p.setProperty("offsetAsPageNum", "true");
        p.setProperty("rowBoundsWithCount", "true");
        pageHelper.setProperties(p);
        return pageHelper;
    }
 
}

方式二:springboot中使用PageHelper

1.在pom.xml中引入依赖

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

2.在application.properties或者application.yml格式配置pagehelper的属性

#pagehelper分页插件配置 pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

推荐使用:

# 分页配置
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count=countSql
  

配置解释:

**pagehelper.helperDialect:**分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插 件使用哪种方言。配置时,可以使用下面的缩写值:
oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby
特别注意:使用 SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005
的方式进行分页。

**pagehelper.reasonable:**分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。

**pagehelper.supportMethodsArguments:**支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params
配置的字段中取值,查找到合适的值时就会自动分页。 使用方法可以参考测试代码中的
com.github.pagehelper.test.basic 包下的 ArgumentsMapTest 和 ArgumentsObjTest。

**pagehelper.params:**为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值, 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值,
默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。

PageHelper.startPage(pageNum,pageSize)使用注意

//  注意 : 后边需要紧跟查询条件,也就是查询的数据
// pageNum:当前页数   pageSize:当前页需要显示的数量
PageHelper.startPage(pageNum,pageSize);

业务中使用

例:

  /**
     * 根据用户的id查询当前用户下的所有上传的文件  pageHelper进行分页
     *
     * @param userId
     */
    @Override
    public List<File> findFiles(Integer userId) {
        //分页只需要在查询的数据前设置当前页和每页大小即可,也有默认值
        PageHelper.startPage(1, 5);
        List<File> files = fileMapper.findFiles(userId);
        return files;
    }
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值