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 层的方法。
相关推荐
不像程序员的程序媛6 小时前
redis的一些疑问
java·redis·mybatis
野犬寒鸦10 小时前
MyBatis-Plus 中使用 Wrapper 自定义 SQL
java·数据库·后端·sql·mybatis
代码的余温17 小时前
MyBatis集成Logback日志全攻略
java·tomcat·mybatis·logback
sniper_fandc1 天前
SpringBoot系列—MyBatis(xml使用)
java·spring boot·mybatis
Charlie__ZS1 天前
若依框架去掉Redis
java·redis·mybatis
N维世界2 天前
Mybatis-XML映射文件
xml·java·mybatis
慧一居士3 天前
MyBatis-Plus的完整使用示例,完整使用示例手册
mybatis
艺杯羹3 天前
MyBatis之核心对象与工作流程及SqlSession操作
java·mybatis
天天摸鱼的java工程师3 天前
MyBatis Plus 的实用技巧:从业务场景到代码实现
java·后端·mybatis
wuxuanok3 天前
Web后端开发-Mybatis
java·开发语言·笔记·学习·mybatis