MyBatisPlusGenerator的配置
时间: 2025-06-11 09:18:37 浏览: 12
### MyBatis-Plus Generator 配置教程与示例
MyBatis-Plus 提供了一个强大的代码生成工具 `mybatis-plus-generator`,它可以根据数据库中的表结构自动生成 Java 实体类、Mapper 接口、Service 层以及 Controller 类等内容。这极大地提高了开发效率并减少了重复劳动。
#### Maven 依赖引入
为了使用 `mybatis-plus-generator`,需要在项目的 `pom.xml` 文件中添加以下依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
```
这里需要注意的是,除了 `mybatis-plus-generator` 外,还需要引入模板引擎(如 FreeMarker 或 Velocity),以便支持代码生成过程中的模板渲染[^1]。
---
#### 基本配置示例
下面是一个完整的 `mybatis-plus-generator` 的配置示例,展示如何基于 MySQL 数据库生成代码:
```java
package com.example.generator;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class CodeGenerator {
public static void main(String[] args) {
// 创建代码生成器对象
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java") // 设置输出目录
.setAuthor("Your Name") // 设置作者名
.setOpen(false); // 是否打开输出目录
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC")
.setDriverName("com.mysql.cj.jdbc.Driver")
.setUsername("root")
.setPassword("password")
.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("com.example") // 父包名
.setModuleName(null) // 模块名(可选)
.setEntity("entity") // Entity 存放路径
.setMapper("mapper") // Mapper 存放路径
.setService("service") // Service 存放路径
.setController("controller"); // Controller 存放路径
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel) // 表名生成策略:下划线转驼峰命名
.setColumnNaming(NamingStrategy.underline_to_camel) // 列名生成策略:下划线转驼峰命名
.setEntityLombokModel(true) // 使用 Lombok 注解简化实体类
.setRestControllerStyle(true) // 启用 RestController 风格
.setInclude("table_name_1", "table_name_2"); // 要生成的表名列表
mpg.setStrategy(strategy);
// 执行生成
mpg.execute();
}
}
```
此代码片段展示了如何通过设置不同的配置来实现自动化代码生成功能。其中的关键部分包括全局配置 (`GlobalConfig`)、数据源配置 (`DataSourceConfig`)、包配置 (`PackageConfig`) 和策略配置 (`StrategyConfig`)。
---
#### 自定义模板
如果默认生成的代码无法满足需求,可以通过修改模板来自定义生成逻辑。例如,可以替换 Freemarker 默认模板文件夹下的 `.ftl` 文件,或者通过编程方式指定新的模板路径:
```java
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setEntity("/templates/entity.java.ftl"); // 自定义实体类模板
mpg.setTemplate(templateConfig);
```
---
#### 运行效果
运行上述代码后,会在指定的输出目录下生成一系列文件,具体取决于所配置的模块和表名范围。这些文件通常包括但不限于:
- **Entity**: 对应于数据库表的实体类。
- **Mapper**: 映射接口及其 XML 文件。
- **Service**: 定义业务层接口。
- **ServiceImpl**: 实现业务层接口的具体类。
- **Controller**: 控制器类,负责处理 HTTP 请求。
---
#### 注意事项
1. 如果使用的数据库驱动程序较新,则需确保其兼容性,并调整 JDBC URL 参数以匹配实际环境。
2. 当前版本号为 `3.5.0`,可根据实际情况选择其他稳定版本[^3]。
3. 若希望进一步提升用户体验,还可以尝试集成可视化界面工具 `mybatis-plus-generator-ui` 来完成更复杂的定制化需求[^2]。
---
阅读全文
相关推荐











