Mybatis-plus分页查询(SpringBoot)

2024-01-30

OS:Windows10  22H2

IDE:IDEA 2022.2.5

JDK version:19

Maven version:3.6.3

数据库:MySQL 8.1.0

mybatis-plus:3.5.3.1

 

一、在springBoot启动类中将分页插件加入到ioc容器里面

@SpringBootApplication
@MapperScan("com.ssm.mapper")
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }

    /**
     * 将mybatis-plus插件加入到ioc容器里面
     */
    @Bean
    public MybatisPlusInterceptor plusInterceptor() {
        // mybatis-plus的插件集合【使用的集合加入到这个集合里面,分页插件,乐观锁】
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();

        // 分页插件
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));

        return mybatisPlusInterceptor;  
    }
}

在new PaginationInnerInterceptor()的括号里面输入数据库的类型,这里是枚举类型。例如MySql数据库,DbType.MYSQL

 

二、进行分页查询

需要导入的测试依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>3.0.5</version>
</dependency>
@SpringBootTest
public class SpringBootMybatisPlusTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testPage() {
        // IPage(接口) -> Page(实现类) 页码 页容量
        Page<User> page = new Page<>(1, 3);
        userMapper.selectPage(page, null);
        // 查询得到的结果也会被封装到page对象中

        // 页码
        long current = page.getCurrent();
        System.out.println("current = " + current);
        // 页容量
        long size = page.getSize();
        System.out.println("size = " + size);
        // 当前页的数据
        List<User> records = page.getRecords();
        System.out.println("records = " + records);
        // 表中数据的行数
        long total = page.getTotal();
        System.out.println("total = " + total);
    }

}

 测试结果截图(第1页,有3条记录)

posted @ 2024-01-30 19:20  LANE_AZUR  阅读(471)  评论(0)    收藏  举报