SpringBoot+MyBatisPlus的分页功能实现

2022-06-17 10:48:14

SpringBoot+MyBatisPlus的配置就不叙述了,直接看逻辑功能的实现。

我们从数据库中读取数据,并把它显示到界面中,是要有限制的。如果数据库中有几百万条数据,不可能全部显示到一个界面上。所以大多数网站都有分页功能。

那么它是如何实现的呢?

步骤1.

先编写一个配置类,如MPConfig.class(代表MyBatisPlus配置,即实现MyBatisPlus的拦截器功能),

看实际代码:用@Configuration注解MPConfig.class,告诉Spring,这是一个配置类,交给Spring管理。

                       里面有一个方法,返回类型是MybatisPlusInterceptor,即拦截器。

                        并用@Bean注解标识,告诉Spring这个对象也交给其管理。最终使Spring能够读取这个功能。

@Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor mybatisPlusInterceptor=new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
实际上我们在MybatisPlusInterceptor中创建的mybatisPlusInterceptor是一个空壳,它的具体功能实现是由PaginationInnerInterceptor()实现,即分页功能。

步骤1其实整段代码都是规定好的,我们唯一能够改变的可能就是方法名了。

总之,有了这个拦截器,我们接下来就要设置相关参数了。

步骤2.

 我们接下来就来测试它的功能实现,如上图。

代码解析如下

@Test
    void getByPage(){
        //设置相关参数,如分2页,每页1条数据
        IPage page=new Page(2,1);
        //前面设置好拦截器和参数,那么这里就是数据库交互数据的时候整体实现分页功能
        bookDao.selectPage(page,null);
        //打印出当前页
        System.out.println(page.getCurrent());
        //打印出一共多少页
        System.out.println(page.getPages());
        //打印出当前页的数据
        System.out.println(page.getRecords());
        //打印出当前页数据的个数
        System.out.println(page.getSize());
        //打印出总共的数据个数
        System.out.println(page.getTotal());
    }

总结好了,到这里已经实现了分页功能。总的来说步骤很简单,代码量也少。而且并不需要多少自己的代码,完全是MP帮我们建好了相关标准代码,我们只需要设置分页参数就行。

  • 作者:木亢王其
  • 原文链接:https://blog.csdn.net/m0_51238796/article/details/123264776
    更新时间:2022-06-17 10:48:14