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 层的方法。
相关推荐
ss2732 天前
手写MyBatis第85弹:组合模式在SqlNode设计中的精妙应用
mybatis
sniper_fandc2 天前
MybatisPlus和pagehelper分页冲突—关于jsqlparser、pagehelper、MybatisPlus三者的版本兼容问题
mybatis·mybatisplus
上官浩仁2 天前
springboot3 mybatisplus 数据库操作入门与实战
spring boot·mybatis·db
weixin_419658313 天前
MyBatis 进阶
mybatis
祈祷苍天赐我java之术3 天前
Redis 热点数据与冷数据解析
java·redis·mybatis
Roye_ack3 天前
【项目实战 Day9】springboot + vue 苍穹外卖系统(用户端订单模块 + 商家端订单管理模块 完结)
java·vue.js·spring boot·后端·mybatis
人间有清欢3 天前
java数据权限过滤
java·mybatis·权限控制·数据过滤
22jimmy3 天前
MyBatis动态sql
java·开发语言·mybatis
不要再敲了4 天前
SSM框架下的redis使用以及token认证
数据库·spring boot·redis·缓存·mybatis