一、项目结构

二、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;
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论