MyBatis-Plus分页插件

MyBatis-Plus 是一个 MyBatis 的增强工具,在简化开发、提高效率方面有着显著的优势。MyBatis-Plus 提供了分页插件(Pagination Interceptor),可以方便地实现分页查询。在使用分页插件自定义查询方法时,可以按照以下步骤进行:

1. 引入依赖

首先,在 pom.xml 文件中引入 MyBatis-Plus 相关的依赖:

XML 复制代码
<dependencies>
    <!-- MyBatis-Plus 核心依赖 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>最新版本号</version>
    </dependency>
    <!-- MySQL 连接池(示例) -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>最新版本号</version>
    </dependency>
    <!-- 其他依赖 -->
</dependencies>

2. 配置分页插件

在 MyBatis-Plus 的配置类中配置分页插件:

java 复制代码
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}
复制代码
3. 创建实体类和 Mapper 接口

创建对应的实体类和 Mapper 接口。例如,有一个 User 表:

java 复制代码
// User.java
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("user")
public class User {
    @TableId
    private Long id;
    private String name;
    private Integer age;
    // 其他字段...
}

// UserMapper.java
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface UserMapper extends BaseMapper<User> {

    // 自定义分页查询
    @Select("SELECT * FROM user WHERE age > #{age}")
    IPage<User> selectUserByAge(Page<?> page, int age);
}

4. 使用分页查询

在 Service 层或者 Controller 层使用分页查询:

java 复制代码
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public IPage<User> getUserByAge(int currentPage, int pageSize, int age) {
        // 创建分页对象
        Page<User> page = new Page<>(currentPage, pageSize);
        // 调用自定义分页查询方法
        return userMapper.selectUserByAge(page, age);
    }
}

5. 调用分页查询

在 Controller 层或者其他调用位置调用分页查询方法:

java 复制代码
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/users/byAge")
    public IPage<User> getUserByAge(
            @RequestParam(defaultValue = "1") int currentPage,
            @RequestParam(defaultValue = "10") int pageSize,
            @RequestParam int age) {
        return userService.getUserByAge(currentPage, pageSize, age);
    }
}
复制代码
总结
  1. 引入依赖:确保项目中包含 MyBatis-Plus 和数据库连接池依赖。
  2. 配置分页插件 :在配置类中注册 PaginationInterceptor
  3. 创建实体类和 Mapper 接口:定义实体类和 Mapper 接口,并在 Mapper 接口中添加自定义分页查询方法。
  4. 使用分页查询:在 Service 层中调用自定义分页查询方法。
  5. 调用分页查询:在 Controller 层或其他位置调用 Service 层的方法。
相关推荐
悟空打码1 小时前
MyBatis源码解读5(3.1、缓存简介)
缓存·mybatis
多多*2 小时前
Java反射 八股版
java·开发语言·hive·python·sql·log4j·mybatis
Auc243 小时前
OJ判题系统第4期之判题机模块架构——设计思路、实现步骤、代码实现(工厂模式、代理模式的实践)
java·spring cloud·log4j·mybatis·代理模式·工厂模式
佛祖让我来巡山8 小时前
【Java持久层技术演进全解析】从JDBC到MyBatis再到MyBatis-Plus
mybatis·jdbc·mybatisplus·持久层框架
冼紫菜16 小时前
【Spring Boot 多模块项目】@MapperScan失效、MapperScannerConfigurer 报错终极解决方案
java·开发语言·mybatis
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧20 小时前
MyBatis快速入门——实操
java·spring boot·spring·intellij-idea·mybatis·intellij idea
菲兹园长1 天前
MyBatis-Plus
java·开发语言·mybatis
计算机学姐1 天前
基于SpringBoot的在线教育管理系统
java·vue.js·spring boot·后端·mysql·spring·mybatis
Kx…………2 天前
Java EE(Spring+Spring MVC+MyBatis)从入门到精通企业级应用开发教程——1初识MyBatis框架
学习·spring·java-ee·mvc·mybatis
码农飞哥2 天前
互联网大厂Java求职面试实战:Spring Boot微服务与数据库优化详解
java·spring boot·微服务·mybatis·数据库优化·性能监控·安全框架