Java Mybatis-plus 3.3.2分页配置
1、pom
<!-- MyBatis-Plus 3.3.2 核心依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version> <!-- 固定为 3.3.2 版本 -->
</dependency>
<!-- 数据库驱动(根据实际数据库选择) -->
<!-- MySQL 8.x -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>8.0.28</version> <!-- 适配 MySQL 8.x -->
</dependency>
<!-- MySQL 5.x -->
<!-- <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>5.1.49</version>
</dependency> -->
2、分页配置类
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * MyBatis-Plus 3.3.2 分页插件配置类 */ @Configuration // 扫描 Mapper 接口所在包(确保分页插件对所有 Mapper 生效) @MapperScan("com.example.mapper") // 替换为你的 Mapper 包路径 public class MybatisPlusPageConfig { /** * 注册分页插件(3.3.2 核心) */ @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); // 1. 指定数据库类型(必须配置,否则分页 SQL 生成失败) // 可选:DbType.MYSQL、DbType.POSTGRE_SQL、DbType.ORACLE、DbType.SQL_SERVER 等 paginationInterceptor.setDbType(DbType.MYSQL); // 2. 分页溢出处理(可选,默认 false) // true:页码超过最大页数时,自动查询最后一页 // false:页码越界返回空数据 paginationInterceptor.setOverflow(true); // 3. 单页最大条数限制(可选,防止恶意查询) // 超过限制会抛出 IllegalArgumentException 异常 paginationInterceptor.setLimit(100); // 单页最多 100 条 // 4. 计数优化(可选,默认 true) // 联表查询时,将 count(*) 优化为 count(1),提升性能 paginationInterceptor.setOptimizeJoin(true); // 5. (可选)指定分页方言类(默认自动适配,特殊数据库可自定义) // paginationInterceptor.setDialect(new MySqlDialect()); return paginationInterceptor; } /** * (可选)MyBatis 原生配置自定义(如驼峰命名、二级缓存) */ /*@Bean public ConfigurationCustomizer configurationCustomizer() { return configuration -> { // 数据库字段下划线转实体类驼峰命名(默认开启,可显式配置) configuration.setMapUnderscoreToCamelCase(true); // 关闭二级缓存(避免多线程数据不一致,根据需求选择) configuration.setCacheEnabled(false); }; }*/ }
有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!

浙公网安备 33010602011771号