Java开发如何配置MyBatis-Plus环境_代码生成器与分页插件集成

P粉602998670

P粉602998670

2026-04-03

501人浏览

原创

mybatis-plus 3.5+ 应只用 mybatis-plus-boot-starter,代码生成器需单独引 3.5.3+ 版本;分页插件 mybatisplusinterceptor 必须手动注册并指定正确 dbtype;spring boot 2.7+ 需确保 spring-boot-starter-jdbc 在 classpath;page 参数必须用 @requestparam 显式接收。

java开发如何配置mybatis-plus环境_代码生成器与分页插件集成

MyBatis-Plus 3.5+ 版本下 starter 依赖怎么选

直接用 mybatis-plus-boot-starter,别单独引 mybatis-plus 或混用旧版 mybatis-plus-generator。3.5.0 起代码生成器已拆为独立模块,starter 默认不带生成器,但自带分页插件(MybatisPlusInterceptor)和基础 CRUD 支持。

常见错误:在 Spring Boot 2.7+ 项目里还加 mybatis-plus-generator 3.5 以下版本,会因 Guava、Freemarker 版本冲突导致启动失败;或漏掉 spring-boot-starter-jdbc 导致 DataSource 找不到。

  • Spring Boot 2.7+ + MyBatis-Plus 3.5.3+:只加 mybatis-plus-boot-starter
  • 需要代码生成:额外加 mybatis-plus-generator(注意用 3.5.3+)和 freemarker(模板引擎)
  • 必须确保 spring-boot-starter-jdbc 在 classpath 中(Spring Boot 默认包含,但若手动排除过需补回)

分页插件必须手动注册才能生效

MybatisPlusInterceptor 不是自动装配的 Bean,不显式配置就等于没开分页——调用 page() 方法会返回全量数据,且无任何警告。

正确做法是在配置类中声明一个 @Bean

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

注意点:

  • PaginationInnerInterceptor 构造必须传 DbType,不能写 DbType.GENERIC,否则 count SQL 可能出错
  • 如果用 PostgreSQL,别写 MYSQL;多数据源场景下,得按实际主库类型配,或用 DynamicTableNameInnerInterceptor 配合路由逻辑
  • Spring Boot 3.x 用户需确认用的是 MyBatis-Plus 4.0+(目前仍为 RC),API 略有变动,PaginationInnerInterceptor 已改名

代码生成器连不上数据库或表名为空

生成器报 Cannot get table names 或生成的实体类字段全是 Object,大概率是数据源未正确定义或 JDBC URL 缺少参数。

Java JDK 25
Java JDK 25

Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。

下载

关键检查项:

  • 生成器用的 DataSource 必须和 Spring Boot 主数据源一致(尤其多数据源时别 new 一个 HikariCP 实例硬塞)
  • MySQL 8+ 的 JDBC URL 必须带 serverTimezone=UTCuseSSL=false,否则驱动连上也查不出表结构
  • StrategyConfig 中要明确设 setInclude("user", "order"),否则默认过滤掉系统表,但如果你的表名含下划线且没开 setNaming(NamingStrategy.underline_to_camel),可能匹配失败
  • FreeMarker 模板路径写错(如把 templates/entity.java.ftl 写成 template/entity.ftl)会导致生成空文件,但不报错

Page 对象传参时 controller 层容易漏掉 @RequestParam

写 REST 接口接收分页参数时,如果直接在方法签名里写 Page<user> page</user>,Spring MVC 不会自动绑定 currentsize,page 会是 null 或默认值(current=1, size=10),但前端传的参数完全被忽略。

正确方式只有两种:

  • @RequestParam 显式接收分页参数,再构造 Pagenew Page(current, size)
  • 自定义 PageHandlerMethodArgumentResolver(适合统一处理,但多数项目没必要)

别依赖 Jackson 把 JSON body 里的 { "current": 2, "size": 20 } 自动转成 Page 对象——它不是普通 POJO,没有对应 setter,也不支持反序列化。

生成器模板和分页拦截器看着简单,但每个环节都卡在细节上:JDBC 参数、DbType 类型、@RequestParam 缺失、多数据源下的拦截器注册位置……这些地方一错,问题现象和原因之间几乎没有直接提示,只能逐层断点看 Page 是怎么被构造的、Interceptor 有没有进 intercept()、生成器的 Connection 是否真执行了 getTables()

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

3861

6

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

2838

9

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

2023.07.31

2874

8

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.01

637

3

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.02

602

3

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

706

5

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

1316

5

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

2023.08.03

18844

3

配置java环境变量
配置java环境变量

配置Java环境变量是为了让操作系统能够识别和使用Java的相关命令和功能。本专题为大家提供配置java环境变量相关文章,帮助大家解决问题。

2023.08.03

647

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习

Java 26官方文档
Java 26官方文档

共0课时 | 0人学习