本章导学:
MP为我们提供了如下的一个方法selectPage()

我们点进去看看这个方法需要什么参数

显而易见,我们需要传递一个泛型P,这个泛型继承于IPage对象,和一个条件构造器
我们点进去IPage看看

当前的IPage是一个接口,我们看看它有哪些实现类

发现它只有一个Page实现类,我们进去看看这个Page类是什么东东


哦~原来这个Page为我们封装好了页码,数据条数,页数, 等信息
这个构造器传入页码和每页展示条数就好了
我们把测试代码写完,看一下运行结果
-
- /**
- * 分页测试
- */
- @Test
- public void test01(){
- //第三页,每页展示2条数据
- IPage ipage = new Page(3,2);
- IPage page = mqDao.selectPage(ipage, null);
- System.out.println("当前页码值:"+page.getCurrent());
- System.out.println("每页显示数:"+page.getSize());
- System.out.println("一共多少页:"+page.getPages());
- System.out.println("一共多少条数据:"+page.getTotal());
- System.out.print("数据:");
- page.getRecords().forEach(System.out::println);
- }
奇怪的是,它查询出来的数据还是所有数据,并没有起到我们的分页效果
我们都知道分页的原理是where limit ?,?
那是不是只要在这条查询语句后加上where条件就好了,我们可以把这条语句拦截下来,为它添加我们的where条件,这也是AOP思想的提现(在原有代码上只进行增强,不做修改)
我们新建一个配置类

- 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 mybatisPlusInterceptor = new MybatisPlusInterceptor();
- //2,添加具体的拦截器,这里添加的为分页拦截器
- mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
- return mybatisPlusInterceptor;
- }
再次运行测试看看结果

大功告成