一、问题描述
使用的MyBatis Plus中的selectPage方法,无论怎么改都不起作用
原代码(serviceimpl
层代码):
/**
* 带条件的分页查询
* @param current
* @param limit
* @param teacherQuery
* @return
*/
@Override
public Page<EduTeacher> pageListTeacherCondition(long current, Long limit, TeacherQuery teacherQuery){
//创建Page对象
Page<EduTeacher> eduTeacherPage = new Page<>(current,limit);
//构建条件
QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>();
//获取传入讲师的条件是否为空
//讲师名
String name = teacherQuery.getName();
//讲师级别
Integer level = teacherQuery.getLevel();
//开始时间
String gmtCreate = teacherQuery.getGmtCreate();
//结束时间
String gmtModified = teacherQuery.getGmtModified();
//多条件组合查询
//判断条件值是否为空,如果不为空拼接条件
if (!StringUtils.isEmpty(name)){
//构建条件 模糊查询
wrapper.like("name",name);
}
if (!StringUtils.isEmpty(level)){
//等于
wrapper.eq("level",level);
}
if (!StringUtils.isEmpty(gmtCreate)){
//大于等于
wrapper.ge("gmt_create",gmtCreate);
}
if (!StringUtils.isEmpty(gmtModified)){
//小于等于
wrapper.le("gmt_modified",gmtModified);
}
//调用mybatis plus分页方法进行查询
eduTeacherMapper.selectPage(eduTeacherPage,wrapper);
return eduTeacherPage;
二、解决方案
我查了一天后来才知道问题出在哪里,没有进行配置分页插件,加上这个分页插件配置类,查询分页就好使了
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() {
PaginationInterceptor page = new PaginationInterceptor();
page.setDialectType("mysql");
return page;
}
}
三、显示效果
访问方式GET
:http://localhost:9030/eduservice/teacher/pageListTeacherCondition/1/5?current=1&limit=5&gmtCreate=2019-01-01 10:10:10&gmtModified=2020-02-01 10:10:10&level=1&name=宋