PageHelper实现查询分页

在实际开发过程中,查询数据经常要分页

实现查询分页可以借助PageHelper插件

首先引入pom包

<github.pagehelper.version>1.2.13</github.pagehelper.version>

<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <version>${github.pagehelper.version}</version>
</dependency>

在配置文件中添加相关配置

pagehelper:
  # dialect: ①
  # 分页插件会自动检测当前的数据库链接,自动选择合适的分页方式(可以不设置)
  helper-dialect: oracle
  # 上面数据库设置后,下面的设置为true不会改变上面的结果(默认为true)
  auto-dialect: true
  page-size-zero: false # ②
  reasonable: false # ③
  # 默认值为 false,该参数对使用 RowBounds 作为分页参数时有效。(一般用不着)
  offset-as-page-num: false
  # 默认值为 false,RowBounds是否进行count查询(一般用不着)
  row-bounds-with-count: false
  #params: ④
  #support-methods-arguments: 和params配合使用,具体可以看下面的讲解
  # 默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页
  auto-runtime-dialect: false # ⑤
  # 与auto-runtime-dialect配合使用
  close-conn: true
  # 用于控制默认不带 count 查询的方法中,是否执行 count 查询,这里设置为false后,total会为-1
  default-count: true
  #dialect-alias: ⑥

定义页码和每页条数常量

private static final int PAGE_SIZE=1000;
private static int PAGE_NO=1;

1. 实现分页查询

PageHelper.startPage(PageUtil.initPageNo(PAGE_NUM),
                        PageUtil.initPageSize(PAGE_SIZE));
List<xx> xxList = xxlMapper.queryXx(ReqDto reqDto);

要注意的是这里的查询语句,要用唯一不会重复的字段进行Order by,然后每查询一次,页码数要加1

2.实现分页写入

	   Lists.partition(xxList,PAGE_SIZE).forEach(xxItemList-> {
            xxAppMapper.insert(xxItemList);
        });

但是需要主义的是,分页查询只对后面的第一条查询有效果,如果要多条查询分页,则需要对每条查询设置各自的分页逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值