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帮我们建好了相关标准代码,我们只需要设置分页参数就行。