SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询

文章 SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作我们编写了MyBatis-Plus以Druid为数据源的方式 做了数据库的增删查改操作
那么 下面我们继续写 分页查询
我们 先写这样一段代码

bookDao.selectPage()

selectPage就是BaseMapper提供给我们的分页查询函数 但他需要参数
我们按住Ctrl点进去
SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询_第1张图片
我们可以看到 他的第一个参数 是一个IPage类型的
SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询_第2张图片
我们直接编写测试类代码如下

package com.example.bookconfig;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.bookconfig.dao.bookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class BookConfigApplicationTests {

    @Autowired
    private bookDao bookDao;

    @Test
    void contextLoads() {
        IPage page = new Page(1,1);
        bookDao.selectPage(page,null);
    }
}

这里 我们通过Page实现类 实现了IPage接口 那么 作为分页 他需要你告诉它 你要查第几页 每页展示多少条
这里 我们告诉它 我们要查第一页 每页一条 第二个参数是查询条件 我们暂时不写 就给个unll

代码运行结果如下
SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询_第3张图片
我们会发现不太对啊
这里 MP做了限制 我们需要写一个专门做配置的类 处理MP的拦截器

我们在启动类同目录 下 创建一个文件夹 config
SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询_第4张图片
下面创建一个 MPConfig java类
参考待明日续爱

package com.example.bookconfig.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(){
        MybatisPlusInterceptor MybatisPlusInterceptor = new MybatisPlusInterceptor();
        MybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return MybatisPlusInterceptor;
    }
}

我们先用Configuration声明这个为一个配置类 然后 通过Bean 将他交给Spring去管理
然后 通过addInnerInterceptor 加入配合 开启PaginationInnerInterceptor

然后 我们再次运行测试类 运行结果如下
SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询_第5张图片
这次结果就对了 他是查到第一页 查一条

然后 我们试着将这两改成 第二页
SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询_第6张图片
查第二页 查一条 显然数据没有问题
SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询_第7张图片
这里 因为我的表数据只有两条 所以 目前也只能这样先测试一下了

但是 比较奇葩的是 selectPage 方法的返回值 还是个IPage类型的对象
那么 我们怎么拿到查询返回的结果呢?
首先 我们还是要看 我们带进去的 这个 IPage 对象
用它.get 后面的提示就出来了
首先 getCurrent 代表当前页 指的就是 我们当前传递的这个2
getSize 代表每页展示的数量 就是我们这个传递的第二个参数 1 每页查询一条
getTotal 查询结果的长度 就是 实际查出来了多少条数据 那么 我们这里显然是一条
SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询_第8张图片
然后 我们仔细看看 getRecords 后面对应的类型
SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询_第9张图片
那么 查询出来的数据怎么获取 就不用我教了吧?
我们这样打印出来

IPage page = new Page(2,1);
bookDao.selectPage(page,null);
System.out.println("----page.getRecords()----");
System.out.println(page.getRecords());

运行结果如下
SSMP整合案例(4) Spring Boot整合MyBatis-Plus实现分页查询_第10张图片

你可能感兴趣的:(mybatis,spring,boot,java)