本文目录导读:

MyBatis-Plus代码生成有多种方式,我为你详细介绍最常用的3种方法:
MyBatis-Plus 3.5.x 新版本(推荐)
添加依赖
<!-- Spring Boot 3.x -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.5</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.5</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
编写生成器代码
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
import java.util.Collections;
public class CodeGenerator {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/your_db", "root", "password")
.globalConfig(builder -> {
builder.author("YourName") // 设置作者
.outputDir("D://generator//"); // 输出目录
})
.packageConfig(builder -> {
builder.parent("com.example") // 父包名
.moduleName("system") // 模块名
.entity("entity")
.service("service")
.serviceImpl("service.impl")
.mapper("mapper")
.xml("mapper.xml")
.controller("controller");
})
.strategyConfig(builder -> {
builder.addInclude("user", "role", "permission") // 设置需要生成的表名
.addTablePrefix("t_", "sys_"); // 设置过滤表前缀
})
.templateEngine(new VelocityTemplateEngine()) // 使用Velocity引擎
.execute();
}
}
MyBatis-Plus 3.5.x 自定义模板配置
FastAutoGenerator.create(dataSourceConfig)
.globalConfig(builder -> {
builder.author("YourName")
.outputDir("D://generator//")
.enableSwagger() // 开启Swagger
.dateType(DateType.TIME_PACK) // 时间策略
.commentDate("yyyy-MM-dd");
})
.packageConfig(builder -> {
builder.parent("com.example")
.moduleName("system")
.entity("entity")
.service("service")
.serviceImpl("service.impl")
.mapper("mapper")
.xml("mapper.xml")
.controller("controller")
.pathInfo(Collections.singletonMap(OutputFile.xml, "D://generator//xml//")); // 自定义xml路径
})
.strategyConfig(builder -> {
builder.addInclude("user") // 表名
.addTablePrefix("t_")
// Entity 策略配置
.entityBuilder()
.enableLombok() // 开启Lombok
.enableTableFieldAnnotation() // 开启字段注解
.versionColumnName("version") // 乐观锁字段
.logicDeleteColumnName("deleted") // 逻辑删除字段
// Mapper 策略配置
.mapperBuilder()
.enableBaseResultMap() // 通用ResultMap
.enableBaseColumnList() // 通用ColumnList
// Service 策略配置
.serviceBuilder()
.formatServiceFileName("%sService") // 格式化Service名称
.formatServiceImplFileName("%sServiceImpl")
// Controller 策略配置
.controllerBuilder()
.enableHyphenStyle() // 启用驼峰转连字符
.enableRestStyle(); // 启用@RestController
})
.templateEngine(new VelocityTemplateEngine())
.execute();
传统代码生成器(旧版本兼容)
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class TraditionalGenerator {
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
// 1. 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("YourName");
gc.setOpen(false);
gc.setSwagger2(true);
mpg.setGlobalConfig(gc);
// 2. 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/your_db");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("password");
mpg.setDataSource(dsc);
// 3. 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName("system");
pc.setParent("com.example");
pc.setEntity("entity");
pc.setMapper("mapper");
pc.setService("service");
pc.setServiceImpl("service.impl");
pc.setController("controller");
mpg.setPackageInfo(pc);
// 4. 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("user", "role");
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true); // Lombok
strategy.setRestControllerStyle(true); // @RestController
strategy.setControllerMappingHyphenStyle(true);
// 5. 模板引擎
mpg.setTemplateEngine(new VelocityTemplateEngine());
mpg.execute();
}
}
运行方式
直接运行main方法
# 直接右键运行 CodeGenerator 类的 main 方法
使用Maven插件(可选)
<plugin>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator-maven-plugin</artifactId>
<version>3.5.5</version>
<configuration>
<configurationFile>src/main/resources/generator-config.properties</configurationFile>
</configuration>
</plugin>
生成结果示例
生成的代码结构:
D://generator//
├── java/
│ └── com/example/system/
│ ├── entity/
│ │ └── User.java
│ ├── mapper/
│ │ └── UserMapper.java
│ ├── service/
│ │ ├── UserService.java
│ │ └── impl/
│ │ └── UserServiceImpl.java
│ └── controller/
│ └── UserController.java
└── resources/
└── mapper/
└── UserMapper.xml
注意事项
- 版本选择:推荐使用3.5.5+版本
- 数据库驱动:确保引入对应数据库的驱动
- 模板引擎:支持Velocity(默认)、Freemarker、Beetl
- 自定义模板:可在resources/templates/目录下自定义模板
- 执行顺序:先创建好数据库表,再运行生成器
这样就能快速生成完整的CRUD代码了,包括Controller、Service、Mapper、Entity和XML文件。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播