商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > springBoot使用mybatis-plus插件实现分页过程

springBoot使用mybatis-plus插件实现分页过程

  发布于2026-07-12 阅读(0)

扫一扫,手机访问

分页功能几乎是后端开发中的标配。Mybatis-Plus 提供的分页插件用起来非常顺手,配置简单、逻辑清晰。下面直接来看完整的实现过程,从项目结构到代码落地,一步到位。

一、项目结构

springBoot使用mybatis-plus插件实现分页过程

二、pom.xml 依赖添加

(这里添加到 krystal_dao 模块的 pom.xml 中;单模块项目直接加在根 pom.xml,多模块项目则根据实际情况放到对应模块的配置文件里。)


    com.baomidou
    mybatis-plus
    3.0-beta

三、新建 MyBatisPlusConfig.ja va

(建议把配置类放在专门的功能模块里,所需的依赖按编译报错提示逐个添加即可。)

springBoot使用mybatis-plus插件实现分页过程

package com.dm.krystal.core.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author krystal
 */
@Configuration
/*@MapperScan("com.dm.krystal")*/ /* KrystalApiApplication启动类上已写,此处不再重复 */
public class MyBatisPlusConfig {
    /**
     * mybatis-plus分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        return paginationInterceptor;
    }
}

四、具体代码实现

1. Controller

IPage pageData = examinationPaperRelevanceService.getExaminationPaperPageByQueryVO(page, examinationPaperQueryVO);

2. Service 接口

IPage getExaminationPaperPageByQueryVO(Page page, ExaminationPaperQueryVO examinationPaperQueryVO);

3. Service 实现类

@Override
public IPage getExaminationPaperPageByQueryVO(Page page, ExaminationPaperQueryVO examinationPaperQueryVO) {
    return this.baseMapper.getExaminationPaperPageByQueryVO(page, examinationPaperQueryVO);
}

4. Mapper (DAO 接口)

IPage getExaminationPaperPageByQueryVO(Page page, @Param("examinationPaperQueryVO") ExaminationPaperQueryVO examinationPaperQueryVO);

5. Mapper XML

 

五、SQL 打印

springBoot使用mybatis-plus插件实现分页过程

执行结果:

springBoot使用mybatis-plus插件实现分页过程

六、自定义分页(已有100条数据,每次截取十条)

IPage pageData = PageUtil.listToPage(paperList, page.getCurrent(), page.getSize());
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;

import ja va.util.ArrayList;
import ja va.util.List;
import ja va.util.concurrent.atomic.LongAccumulator;

@Slf4j
public class PageUtil {

    public static  IPage listToPage(List list, long pageNum, long pageSize){
        IPage iPage = new Page<>(pageNum, pageSize);
        iPage.setTotal(list.size());
        int startIndex = (int)((pageNum - 1) * pageSize);
        if (null == list || list.isEmpty() || startIndex > list.size()) {
            iPage.setRecords(new ArrayList<>());
        } else {
            int toIndex = (int)(pageNum * pageSize);
            iPage.setRecords(list.subList(startIndex, toIndex > list.size() ? list.size() : toIndex));
        }
        return iPage;
    }
}

总结

以上就是利用 Mybatis-Plus 分页插件在 SpringBoot 中实现分页的完整流程,从依赖配置、插件注册到业务代码的编写,以及针对内存列表的自定义分页工具类,都一并覆盖了。按此步骤操作,可以快速给项目加上稳定高效的分页能力。

本文转载于:https://www.jb51.net/program/362855noa.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注