SpringBoot整合分页插件pagehelper

我们之前在学习Mybatis的时候, 如果需要分页,我们是自己编写分页sql,并编写分页实体类来完成分页,但是这种全部手动编写,太麻烦了,其实Mybatis提供了分页插件,来解放我们的双手,那接下来我们就来学习Mybatis提供的分页插件pagehelper.

PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件

官网: MyBatis 分页插件 PageHelper

1.导入分页插件依赖

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

 2.配置pagehelper参数

# PageHelper分页插件
pagehelper:
  helperDialect: mysql
  supportMethodsArguments: true
  params: count=countSql

 3.如何在代码中使用

1)RowBounds方式的调用

使用这种调用方式时,你可以使用RowBounds参数进行分页,这种方式侵入性最小,我们可以看到,通过RowBounds方式调用只是使用了这个参数,并没有增加其他任何内容。分页插件检测到使用了RowBounds参数时,就会对该查询进行物理分页

@SpringBootTest
public class MyTest {
@Autowired
private SqlSession sqlSession;
  @Test
  public void test1(){
      //System.out.println(sqlSession);
      List<SysConfig> list = sqlSession.selectList("com.fs.system.mapper.SysConfigMapper.selectConfigList", new SysConfig(), new RowBounds(1, 2));
      System.out.println(list);
  }
}

注意: 由于默认情况下的 RowBounds 无法获取查询总数,分页插件提供了一个继承自 RowBoundsPageRowBounds,这个对象中增加了 total 属性,执行分页查询后,可以从该属性得到查询总数。  

2)PageHelper.startPage静态方法调用

除了 PageHelper.startPage 方法外,还提供了类似用法的 PageHelper.offsetPage 方法。

在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage 静态方法即可,紧跟在这个方法后的第一个MyBatis 查询方法会被进行分页。

import com.common.core.pojo.SysConfig;
import com.system.mapper.SysConfigMapper;
import com.github.pagehelper.PageHelper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
public class MyTest {

@Autowired
private SysConfigMapper sysConfigMapper;
  @Test
  public void test2(){
      PageHelper.startPage(1, 2);
      List<SysConfig> list = sysConfigMapper.selectList(null);
      System.out.println(list);
  }
}

3)使用参数方式

想要使用参数方式,需要配置 supportMethodsArguments 参数为 true,同时要配置 params 参数。 例如下面的配置:

pagehelper:
helperDialect: mysql
supportMethodsArguments: true
params: count=countSql;pageNum=pageNumKey;pageSize=pageSizeKey;

在 Mapper方法中:

List<SysConfig> selectConfigList(
      @Param("sysConfig") SysConfig sysConfig,
      @Param("pageNumKey") int pageNum,
      @Param("pageSizeKey") int pageSize);

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值