MyBatis分页查询怎么实现

743
2023/11/15 22:33:37
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

MyBatis提供了两种方式实现分页查询:

  1. RowBounds方式:通过传入RowBounds对象来指定查询的起始行和页大小。例如:
int offset = 0; // 起始行
int limit = 10; // 页大小
RowBounds rowBounds = new RowBounds(offset, limit);

List<User> users = sqlSession.selectList("UserMapper.selectUsers", null, rowBounds);
  1. 使用插件PageHelper:PageHelper是一个开源的MyBatis分页插件,可以简化分页查询的实现。首先在项目中引入PageHelper的依赖:
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.3.0</version>
</dependency>

然后在查询方法前调用PageHelper.startPage()方法来设置分页参数,再通过PageInfo对象获取查询结果和分页信息。例如:

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

int pageNum = 1; // 当前页码
int pageSize = 10; // 页大小

PageHelper.startPage(pageNum, pageSize);
List<User> users = sqlSession.selectList("UserMapper.selectUsers", null);

PageInfo<User> pageInfo = new PageInfo<>(users);
long total = pageInfo.getTotal(); // 总记录数
int pages = pageInfo.getPages(); // 总页数

以上是两种常用的MyBatis分页查询方式,可以根据实际需求选择适合的方式。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: mybatis annotation是否支持动态sql