当前位置: 代码网 > it编程>编程语言>Java > springBoot使用mybatis-plus插件实现分页过程

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

2026年04月26日 Java 我要评论
一、项目结构二、pom.xml 依赖添加(这里我是加在krystal_dao的pom.xml里面,单个项目,直接加在pom.xml,多模块根据自己项目情况添加)<dependency>

一、项目结构

二、pom.xml 依赖添加 

(这里我是加在krystal_dao的pom.xml里面,单个项目,直接加在pom.xml,多模块根据自己项目情况添加)

<dependency>
    <groupid>com.baomidou</groupid>
    <artifactid>mybatis-plus</artifactid>
    <version>3.0-beta</version>
</dependency>

三、新建mybatisplusconfig.java

(这里我用专门一个模块添加一些功能代码,里面依赖自己根据报错添加进去即可)

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<examinationpaperrelevancepo>  pagedata = examinationpaperrelevanceservice.getexaminationpaperpagebyqueryvo(page,examinationpaperqueryvo);

2.service

ipage<examinationpaperrelevancepo> getexaminationpaperpagebyqueryvo(page page, examinationpaperqueryvo examinationpaperqueryvo);

3.serviceimp

@override
public ipage<examinationpaperrelevancepo> getexaminationpaperpagebyqueryvo(page page, examinationpaperqueryvo examinationpaperqueryvo) {

    return this.basemapper.getexaminationpaperpagebyqueryvo(page,examinationpaperqueryvo);
}

4.dao

ipage<examinationpaperrelevancepo> getexaminationpaperpagebyqueryvo(page page, @param("examinationpaperqueryvo")examinationpaperqueryvo examinationpaperqueryvo);

5. .xml

 <select id="getexaminationpaperpagebyqueryvo" resulttype="com.eebbk.core.pojo.vo.examinationpapercatalogvo">
        select
        a.id,a.paper_id,a.publisher_id,
        a.publisher_name,a.grade_id,a.grade_name,
        a.semester_id,a.semester_name,
        a.subject_id,a.section_id,a.source_type,
        a.province_id,a.province_name,a.city_id,
        a.city_name,a.`order`,a.staged_type as stagetypeid,a.school_type
        from t_examination_paper_relevance  a
    </select>

五、sql 打印

 

结果

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

ipage<examinationpaperpo> 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 java.util.arraylist;
import java.util.list;
import java.util.concurrent.atomic.longaccumulator;

@slf4j
public class pageutil {


    public static <t> ipage<t> listtopage(list<t> list, long pagenum, long pagesize){
        ipage<t> 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;
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com