DeBug

一、出现情况

SpringBoot.在使用nyBatis plus时候做一个分页查询,使用getPage奈何返回全部数据。
分页查询结果-错误

二、项目架构

2-1、Dao层

package com.cloudguest.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cloudguest.domain.TrainSchedule;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface TrainScheduleDao extends BaseMapper<TrainSchedule> {

}

2-2、service层

2-2-1、service接口
package com.cloudguest.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cloudguest.domain.TrainSchedule;

import java.util.HashMap;
import java.util.List;

public interface TrainScheduleService extends IService<TrainSchedule> {
    IPage<TrainSchedule> getPage(Integer pageNumber, Integer pageSize);

    List<TrainSchedule> slectByMap(HashMap<String, Object> map);
}

2-2-2、serviceImpl 实现类
package com.cloudguest.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 列车查询类
 * 可以根据始发站和终点站查询到合适的列车
 * 之后返回到前端
 */

@Data
@NoArgsConstructor
@AllArgsConstructor
public class TrainSchedule {
    private String train_number;  // 车次
    private String departure_station;  // 出发站
    private String end_station;  // 到达站
    private String departure_time;  // 出发时间
    private String arrival_time;  // 到达时间

    private String business_seat; // 特等座

    private String soft_bed_first_class_bed;// 一等座/软卧

}

2-2-3、controller控制层

package com.cloudguest.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cloudguest.domain.TrainSchedule;
import com.cloudguest.service.TrainScheduleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/schedule")
public class TrainScheduleController {
    @Autowired
    private TrainScheduleService trainScheduleService;

    @GetMapping("{pageNumber}/{pageSize}")
    public IPage<TrainSchedule> findPage(@PathVariable Integer pageNumber, @PathVariable Integer pageSize) {
        return trainScheduleService.getPage(pageNumber, pageSize);
    }
}


三、原因及解决方法

3-1、原因

  • 没有添加config层的MPConfig配置信息,拦截器

3-2 解决方法

package com.cloudguest.config;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MPconfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        // 1、定义MP拦截器
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 2、添加具体的拦截器
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }
}

3-3、最终查询结果

查询结果

3-4、最终目录结构

项目结构

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐