【微服务】第4节:MybatisPlus的分页插件

目录

1.插件功能

1.1.分页插件

1.1.1.配置分页插件

1.1.2.分页API

1.2.通用分页实体

1.2.1.实体

1.2.2.开发接口

1.2.3.改造PageQuery实体

1.2.4.改造PageDTO实体


1.插件功能

MybatisPlus提供了很多的插件功能,进一步拓展其功能。目前已有的插件有:

  • PaginationInnerInterceptor:自动分页

  • TenantLineInnerInterceptor:多租户

  • DynamicTableNameInnerInterceptor:动态表名

  • OptimisticLockerInnerInterceptor:乐观锁

  • IllegalSQLInnerInterceptor:sql 性能规范

  • BlockAttackInnerInterceptor:防止全表更新与删除

这里我们以分页插件为里来学习插件的用法。

1.1.分页插件

在未引入分页插件的情况下,MybatisPlus是不支持分页功能的,IServiceBaseMapper中的分页方法都无法正常起效。 所以,我们必须配置分页插件。

1.1.1.配置分页插件

在项目中新建一个配置类:

其代码如下:

package com.itheima.mp.config;

import com.baomidou.mybatisplus.annotation.DbType;
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 MybatisConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        // 初始化核心插件
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 添加分页插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

1.1.2.分页API

编写一个分页查询的测试:

@Test
void testPageQuery() {
    // 1.分页查询,new Page()的两个参数分别是:页码、每页大小
    Page<User> p = userService.page(new Page<>(2, 2));
    // 2.总条数
    System.out.println("total = " + p.getTotal());
    // 3.总页数
    System.out.println("pages = " + p.getPages());
    // 4.数据
    List<User> records = p.getRecords();
    records.forEach(System.out::println);
}

运行的SQL如下:

这里用到了分页参数,Page,即可以支持分页参数,也可以支持排序参数。常见的API如下:

int pageNo = 1, pageSize = 5;
// 分页参数
Page<User> page = Page.of(pageNo, pageSize);
// 排序参数, 通过OrderItem来指定
page.addOrder(new OrderItem("balance", false));

userService.page(page);

1.2.通用分页实体

现在要实现一个用户分页查询的接口,接口规范如下:

参数

说明

MybatisPlus分页是通过使用Mybatis-plus插件分页机制实现的。在配置文件中,我们需要添加一个配置类(如MybatisPlusConfig),并在此配置类中添加paginationInterceptor()方法来配置分页功能的拦截器。这样,我们就可以在接口的方法中使用分页功能,返回分页的数据。使用分页功能时,我们可以使用Lambda表达式或普通查询来添加查询条件。具体步骤如下: 1. 首先,在项目的配置文件夹下创建一个Mybatis-plus配置类。这个配置类中需要添加一个paginationInterceptor()方法来配置分页功能的拦截器。 2. 在接口中编写测试方法,使用分页功能查询数据。 3. 注意,在使用分页功能时,如果还有其他查询条件,可以使用Lambda表达式或普通查询来添加条件。 总结起来,使用MybatisPlus分页的步骤是:创建MybatisPlus配置类 -> 添加paginationInterceptor()方法配置分页拦截器 -> 在接口方法中使用分页功能 -> 可以使用Lambda表达式或普通查询添加查询条件。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Mybatis-plus的分页查询](https://blog.youkuaiyun.com/weixin_46213083/article/details/125258551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Mybatis-Plus如何使用分页](https://blog.youkuaiyun.com/qq_42682745/article/details/121574682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫蜜柚子茶

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值