前言

在实际使用时,看到项目并没有在MybatisPlus的拦截器中配置分页插件也能够使用分页功能,在配置前可以看看如果不配置是否能够直接分页。

拦截器

在配置分页功能前,请确保配置好了MybatisPlus,参考文章

使用SpringBoot的配置类创建一个MybatisPlus拦截器的Bean,并给这个Bean加上分页的功能(PS:3.4.0之后的版本)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.example.springbootmybatisplus.configure;

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;

/**
* @Description Mybatis相关配置
* @Author makun
* @Date 2023/9/11 15:58
* @Version 1.0
*/
@Configuration
public class MybatisConfigure {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
// 添加分页拦截
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.example.springbootmybatisplus.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.springbootmybatisplus.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest()
class UserMapperTest {
@Autowired
private UserMapper userMapper;

@Test
void selectPage() {
Page<User> userPage = new Page<>(1, 4);
userMapper.selectPage(userPage, null);
System.out.println("一共有多少页:" + userPage.getPages());
System.out.println("分页最大行数:" + userPage.getSize());
System.out.println("所有数据行数:" + userPage.getTotal());
System.out.println("当前为第几页:" + userPage.getCurrent());
System.out.println(userPage.getRecords());
}
}