返回

MyBatisPlus分页查询轻松上手,带你体验丝滑数据库操作

后端

使用 MyBatisPlus 实现分页查询的全面指南

简介

在现代 Web 开发中,分页对于处理大量数据至关重要。它允许用户分块查看数据,从而增强用户体验并提高应用程序的性能。MyBatisPlus 是一个强大的 Java ORM 框架,它提供了一种简单而有效的方式来实现分页查询。本指南将引导您完成使用 MyBatisPlus 进行分页查询的各个步骤。

1. 引入 MyBatisPlus

要使用 MyBatisPlus,您需要将以下依赖项添加到您的项目中:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.5.2</version>
</dependency>

2. 定义查询字段

定义一个类来存储您需要查询的字段。例如,如果您有一个 User 类,则可以创建以下查询类:

public class UserQuery {
    private String username;
    private String password;
    private Integer age;
}

3. 修改分页函数接口

在您的分页函数接口中添加查询字段参数:

Page<User> selectPage(Page<User> page, @Param("query") UserQuery query);

4. 修改分页实现方法

修改您的分页实现方法以使用查询字段参数:

@Override
public Page<User> selectPage(Page<User> page, @Param("query") UserQuery query) {
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.like("username", query.getUsername());
    wrapper.like("password", query.getPassword());
    wrapper.eq("age", query.getAge());
    return userMapper.selectPage(page, wrapper);
}

5. 修改控制层

在您的控制层添加查询参数:

@PostMapping("/query")
public Page<User> query(@RequestBody UserQuery query) {
    return userService.selectPage(new Page<>(query.getCurrent(), query.getSize()), query);
}

效果演示

成功执行分页查询后,您将收到以下类似的响应:

{
  "total": 100,
  "pages": 10,
  "records": [
    {
      "id": 1,
      "username": "zhangsan",
      "password": "123456",
      "age": 20
    },
    {
      "id": 2,
      "username": "lisi",
      "password": "123456",
      "age": 22
    },
    // ...
  ]
}

总结

通过本指南,您已学会如何使用 MyBatisPlus 轻松有效地实现分页查询。MyBatisPlus 提供了一个强大的 API,使您可以根据各种条件自定义和过滤查询。

常见问题解答

1. 如何指定每页的记录数?

通过设置 size 属性,您可以指定每页的记录数:

new Page<>(1, 10) // 每页 10 条记录

2. 如何获取总记录数?

Page 对象包含 total 属性,其中存储着总记录数:

int totalRecords = page.getTotal();

3. 如何获取当前页码?

Page 对象包含 current 属性,其中存储着当前页码:

int currentPage = page.getCurrent();

4. 如何获取查询结果?

Page 对象包含 records 属性,其中存储着查询结果:

List<User> users = page.getRecords();

5. 如何使用其他查询条件?

MyBatisPlus 提供了一个丰富的查询 API,允许您使用各种查询条件,例如排序、分组和聚合。有关更多信息,请参阅 MyBatisPlus 文档。