0

0

MyBatisPlus代码生成器的配置与使用详细教程

爱谁谁

爱谁谁

发布时间:2025-07-04 09:41:01

|

999人浏览过

|

来源于php中文网

原创

使用mybatisplus代码生成器可大幅提升开发效率。1. 引入相关依赖,包括mybatis-plus-generator、freemarker及数据库驱动;2. 编写配置类设置数据源、全局配置、包名及策略,用于生成实体类、mapper、service和controller;3. 可选自定义模板以满足编码风格需求;4. 注意常见问题如数据库连接、字段映射、注释生成等,确保配置准确以提升代码生成效果。

MyBatisPlus代码生成器的配置与使用详细教程

使用MyBatisPlus代码生成器可以大幅提升开发效率,尤其在项目初期搭建阶段。它能根据数据库表结构自动生成实体类、Mapper接口、Service层、Controller层等基础代码,省去了大量重复劳动。

MyBatisPlus代码生成器的配置与使用详细教程

1. 引入依赖

要使用MyBatisPlus的代码生成器,首先要在项目中引入相关依赖。如果你用的是Maven项目,可以在pom.xml中添加以下内容:

MyBatisPlus代码生成器的配置与使用详细教程
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.2</version>
</dependency>
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.31</version>
</dependency>

注意:不同版本的MyBatisPlus Generator可能对FreeMarker或其他模板引擎有不同要求,确保版本兼容性。

另外,还需要数据库驱动依赖,比如MySQL:

MyBatisPlus代码生成器的配置与使用详细教程
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>

2. 编写配置类

接下来是编写一个Java类来配置代码生成器。你可以创建一个main方法运行这个类,也可以集成到Spring Boot项目中作为启动任务。

《PHP程序设计》第二版
《PHP程序设计》第二版

本书图文并茂,详细讲解了使用LAMP(PHP)脚本语言开发动态Web程序的方法,如架设WAMP平台,安装与配置开源Moodle平台,PHP程序设计技术,开发用户注册与验证模块,架设LAMP平台。 本书适合计算机及其相关专业本、专科学生作为学习LAMP(PHP)程序设计或动态Web编程的教材使用,也适合对动态Web编程感兴趣的读者自觉使用,对LAMP(PHP)程序设计人员也具有一定的参考价值。

下载

核心配置如下:

AutoGenerator generator = new AutoGenerator();

// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/your_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai");
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("123456");
generator.setDataSource(dataSourceConfig);

// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
globalConfig.setAuthor("your_name");
globalConfig.setOpen(false);
globalConfig.setServiceName("%sService"); // 去掉IService前缀
generator.setGlobalConfig(globalConfig);

// 包名配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example.demo");
packageConfig.setModuleName("system");
generator.setPackageInfo(packageConfig);

// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel); // 表转类名策略
strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 字段转属性名策略
strategy.setEntityLombokModel(true); // 使用Lombok
strategy.setRestControllerStyle(true); // Controller为RestController风格
strategy.setInclude("user", "role"); // 需要生成的表名
generator.setStrategy(strategy);

// 执行生成
generator.execute();

几点说明:

  • outputDir建议设置成项目的src/main/java目录下,这样生成的代码可以直接使用。
  • setServiceName("%sService")去掉默认的I前缀,更符合多数团队命名习惯。
  • 如果你使用Lombok,记得加上依赖,并且IDE安装了Lombok插件。

3. 自定义模板(可选)

如果默认生成的代码风格或结构不符合你的需求,可以通过自定义模板来调整。

步骤如下:

  • 下载官方默认模板(通常是以.ftl结尾的Freemarker文件)
  • 修改模板内容,比如Controller加注解、字段描述格式化等
  • 在配置中指定模板路径:
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setController("templates/controller.java.ftl");
generator.setTemplate(templateConfig);

这种方式适合希望统一编码风格、添加特定注释或字段处理逻辑的团队。


4. 常见问题与注意事项

  • 数据库连接失败:检查url、用户名、密码是否正确,尤其是MySQL 8以上驱动名称应为com.mysql.cj.jdbc.Driver
  • 生成的类没有字段:可能是表字段名和命名策略不匹配,或者未开启自动映射
  • 字段类型不准确:有些数据库类型如tinyint会被识别为布尔值,需要手动调整或修改模板
  • 字段注释没生成:确保数据库字段设置了comment,并在策略中开启字段注释支持:
strategy.setEntityTableFieldAnnotationEnable(true);

基本上就这些。配置一次后,后续新增表只需要改一下strategy.setInclude(...)即可快速生成代码。虽然看起来步骤不少,但每一步都比较直观,关键在于理解各配置项的作用。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

686

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

513

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

287

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

519

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

267

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

392

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

542

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

668

2023.08.14

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.5万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 846人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号