整合Mybatis-Plus分页插件,并实现分页api方法

业务要分页,不能一股脑返回,一页一页出。

mysql是这么写:

js 复制代码
select * from `user` limit 0, 10

前端要传俩参,一个pageNum, 一个pageSize

mybatis-plus的service有通用的方法:

java 复制代码
  /**
   * 分页查询
   * @param pageNum
   * @param pageSize
   * @return
   */
  @GetMapping("/page")
  public Result findPage(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(default = "10") Integer pageSize) {
    return Result.success(
      userService.page(new Page<>(pageNum, pageSize))
    );
  }

userService.page 用userService的page方法,通过pageNum 和 pageSize,

不是用restful的方式,而是用传统的方式,

前端用就要问号连接符品撒花姑娘参数名进行传递参数,

传入pageSize=2结果都给了,mybatis-plus中要用这个对象,要往springboot容器中注入插件对象,不然使用不了。

目录结构如下:

先在项目中创建一个config,然后在config下面创建一个MybatisPlusConfig

复制官网的代码过去:

java 复制代码
package com.example.demo.config;

@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {

    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加
        // 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType
        return interceptor;
    }
}

启动类里面的MapperScan就不要了

移到MybatisPlusConfig.java

java 复制代码
package com.example.demo.config;

@Configuration
@MapperScan("com.example.demo.mapper")
public class MybatisPlusConfig {

    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加
        // 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType
        return interceptor;
    }
}

然后就引入依赖:

分页插件需要引入它的pom管理依赖,再引入它的依赖就可以了。

再去重启一下,重新请求一下接口,就不会一股脑返回来了,pageSize多少就返回多少。

这样就是正确分页返回了。

配置类:

@Configuration注解,告诉springboot我这个类是一个配置类。

@bean注解说明要往springboot容器中注入这个方法返回的对象。这个也是往springboot容器中注入对象的方式,这种是第三种往容器中注入对象的方式。也是一种比较常见的方式。很多的框架配置类都是这种模式往springboo容器注入框架的对象。

相关推荐
bcbnb29 分钟前
iOS 文件管理全攻略,多工具协同实现高效调试、数据导出与应用分析
后端
tung tung tung sahur42 分钟前
领略 Rust 抽象之美:自定义迭代器实现全解析
开发语言·后端·rust
用户30745969820742 分钟前
容器(Container)—— 对象的“智能工厂+调度官”
后端·thinkphp
程序猿小蒜1 小时前
基于springboot的校园社团信息管理系统开发与设计
java·前端·spring boot·后端·spring
申阳1 小时前
Day 4:02. 基于Nuxt开发博客项目-整合 Inspira UI
前端·后端·程序员
Mos_x1 小时前
28.<Spring博客系统⑤(部署的整个过程
java·后端
爱淋雨的鼬先生1 小时前
SpringBoot 概述
java·spring boot·后端
血小溅1 小时前
Spring Boot 整合 Spring AI:接入 DeepSeek 与 Ollama 调用大模型
后端·ollama·deepseek
李慕婉学姐2 小时前
Springboot的民宿管理系统的设计与实现29rhm9uh(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
用户3074596982072 小时前
门面(Facade)—— 静态语法的“动态伪装术”
后端·php