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 层的方法。
相关推荐
momo1 天前
Java+WebAI黑马知识点
java·spring boot·mybatis
snow@li2 天前
MyBatis:动态 SQL 全景梳理
数据库·sql·mybatis
就改了2 天前
Mybatis快速入门大全(详细版)
java·spring boot·mybatis
qq_171538852 天前
深入浅出 MyBatis XML:从入门到精通
xml·java·mybatis
万亿少女的梦1682 天前
基于SSM、JSP与MySQL的秦皇岛旅游服务管理系统设计与实现
mysql·mybatis·ssm·jsp·spring mvc
jaysee-sjc2 天前
【JavaWeb】JDBC与Mybatis零基础入门详解
java·开发语言·前端·mybatis
dear_bi_MyOnly2 天前
【MyBatis 操作数据库】
java·数据库·学习·mybatis·学习方法
用户3126874877203 天前
分页插件到底怎么拦截 SQL?MyBatis-Plus 插件机制原理一次讲透
mybatis
马优晨3 天前
pring Boot + MyBatis + Redis 项目分层架构详解 —— 各层职责、关系与工作流程
架构·mybatis·spring项目分层架构详解·spring项目架构详解·spring各层职责·spring关系与工作流程
Listen·Rain3 天前
用AI开发出一个AI
java·人工智能·spring boot·tomcat·intellij-idea·mybatis·visual studio