Springboot项目中MybatisPlus分页插件不生效解决办法

使用MybatisPlus分页时发现结果数据并没有成功分页

一、需要对分页进行配置:
二、目前对于Mybatis-Plus中分页配置出现了改变,高版本和低版本的配置不同:
1.低版本:

@Bean
public PaginationInterceptor paginationInterceptor() {
    return new PaginationInterceptor();


2.高版本:

@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
    return interceptor;
}

### Spring Boot 整合 MyBatis-Plus 示例 #### 项目创建与依赖配置 通过 Spring Initializr 创建一个基础的 Spring Boot 项目,并引入必要的依赖项,包括 `Spring Web`、`MyBatis-Plus` 和 `MySQL Driver`。以下是典型的 Maven 配置示例: ```xml <dependencies> <!-- Spring Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis-Plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> <!-- MySQL Driver --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> </dependencies> ``` 上述配置展示了如何设置项目的初始环境[^2]。 --- #### 数据源配置 在 `application.yml` 或 `application.properties` 文件中完成数据源的相关配置。以下是一个基于 YAML 的配置实例: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` 此部分定义了数据库连接参数以及日志输出方式[^1]。 --- #### 实体类映射 假设有一个名为 `User` 的表结构,则可以为其生成对应的实体类。如果使用 `mybatis-plus-generator` 工具,可以通过自动生成的方式简化开发流程[^3]。下面展示了一个手动编写的简单实体类示例: ```java package com.example.demo.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data @TableName("user") public class User { @TableField("id") private Long id; @TableField("name") private String name; @TableField("age") private Integer age; } ``` 该代码片段说明了如何利用注解实现字段到数据库列的映射关系。 --- #### Mapper 接口设计 为了使 DAO 层更加简洁高效,继承 `BaseMapper<T>` 即可获得 CRUD 功能支持。例如针对上面提到的 `User` 表,其对应接口如下所示: ```java package com.example.demo.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.demo.entity.User; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserMapper extends BaseMapper<User> { } ``` 这里强调的是无需额外编写 SQL 查询语句即可满足大部分场景下的增删改查需求。 --- #### 常见问题解答 1. **无法加载 Mapper 接口** 如果遇到此类错误,请确认是否正确标注了 `@MapperScan` 注解于启动类之上或者单独给每个 Mapper 添加了 `@Mapper` 装饰符。 2. **分页插件未生效** 在全局配置文件里启用分页组件并注册拦截器之后仍然不起作用的话,可能是因为方法签名不符合要求所致。确保返回值类型为 `IPage<T>` 并传递合适的 Page 对象作为第一个参数。 3. **动态数据源切换失败** 当应用程序涉及多个数据库时需特别注意事务管理机制的设计合理性;另外还需验证上下文中是否存在有效的 DataSourceKey 提供者服务。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值