使用Mybatis-plus进行分页查询

MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 基础上只做增强不做改变,为简化开发、提高效率而生。它提供了强大的分页功能,非常方便进行分页查询。下面是一个具体的例子,展示了如何使用 MyBatis-Plus 进行分页查询:

1. 引入依赖

首先,确保你的项目中已经添加了 MyBatis-Plus 的依赖。如果还没有,可以在 pom.xml 文件中添加如下依赖(以 Maven 为例):

<dependency>
    <groupId>com.baomidougroupId>
    <artifactId>mybatis-plus-boot-starterartifactId>
    <version>你的MyBatis-Plus版本version>
dependency>

2. 配置 MyBatis-Plus

在你的 Spring Boot 应用中配置 MyBatis-Plus。这通常包括配置数据源、事务管理器等。其中最重要的是配置分页插件 PaginationInterceptor

@Configuration
@MapperScan("com.yourpackage.mapper") // 指定扫描的mapper接口所在的包
public class MybatisPlusConfig {
    
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

3. 编写 Mapper 接口

创建一个 Mapper 接口,继承 BaseMapper,这里以 UserMapper 为例:

@Mapper
public interface UserMapper extends BaseMapper<User> {
    // 这里可以添加一些自定义的方法,但对于分页查询来说不是必需的
}

4. 使用分页查询

在你的服务层或者控制器层中,可以这样使用分页查询:

@Autowired
private UserMapper userMapper;

public IPage<User> selectUserPage(int page, int size) {
    // 创建分页对象
    Page<User> pageInfo = new Page<>(page, size);
    // 执行分页查询
    IPage<User> userPage = userMapper.selectPage(pageInfo, null);
    return userPage;
}

在上述代码中,selectPage 方法是 MyBatis-Plus 提供的用于分页查询的方法,第一个参数是一个 Page 对象,它包含了分页信息(当前页码和每页显示的记录数),第二个参数是查询条件(这里传入 null 表示没有条件,查询全部数据)。

5. 调用分页查询

在你的 Controller 中调用服务层方法:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/list")
    public IPage<User> list(@RequestParam int page, @RequestParam int size) {
        return userService.selectUserPage(page, size);
    }
}

这个 Controller 提供了一个分页查询用户的接口。客户端可以通过传递 page(页码)和 size(每页显示的记录数)来获取分页数据。

总结

以上就是使用 MyBatis-Plus 进行分页查询的一个简单示例。MyBatis-Plus 通过提供 PaginationInterceptorselectPage 等工具,大大简化了分页查询的实现,让开发者能够更加专注于业务逻辑的实现。

你可能感兴趣的:(mybatis)