MyBatis-Plus 的 AutoGenerator(代码生成器) 可以快速生成 Entity、Mapper、Service、Controller 等基础代码,极大提升开发效率。以下是详细使用步骤:
1. 导入相应的依赖
<!-- MyBatis-Plus 生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version> <!-- 使用最新版本 -->
</dependency>
<!-- Freemarker 模板引擎 -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.32</version>
</dependency>
2. 编写生成器配置
创建一个 Java 类(如 CodeGenerator.java),其中最主要的一个类是AutoGenerator 配置生成规则:1.创建代码生成器对象 。2. 全局配置。3. 数据源配置。 4. 包配置。5. 策略配置(数据库表设置)
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class CodeGenerator {
public static void main(String[] args) {
// 1. 创建代码生成器对象
AutoGenerator generator = new AutoGenerator();
// 2. 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
globalConfig.setAuthor("YourName"); // 作者名
globalConfig.setOpen(false); // 生成后不打开文件夹
globalConfig.setSwagger2(true); // 开启 Swagger 注解
generator.setGlobalConfig(globalConfig);
// 3. 数据源配置
DataSourceConfig dataSource = new DataSourceConfig();
dataSource.setUrl("jdbc:mysql://localhost:3306/your_db?useSSL=false&serverTimezone=UTC");
dataSource.setDriverName("com.mysql.cj.jdbc.Driver");
dataSource.setUsername("root");
dataSource.setPassword("123456");
generator.setDataSource(dataSource);
// 4. 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example"); // 父包名
packageConfig.setModuleName("system"); // 模块名(可选)
packageConfig.setEntity("entity"); // 实体类包名
packageConfig.setMapper("mapper");
packageConfig.setService("service");
packageConfig.setController("controller");
generator.setPackageInfo(packageConfig);
// 5. 策略配置(数据库表设置)
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel); // 表名转驼峰
strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 列名转驼峰
strategy.setEntityLombokModel(true); // 使用 Lombok
strategy.setRestControllerStyle(true); // RESTful 控制器
strategy.setInclude("user", "order"); // 要生成的表名(多个用逗号分隔)
strategy.setControllerMappingHyphenStyle(true); // URL 中驼峰转连字符
generator.setStrategy(strategy);
// 6. 执行生成
generator.execute();
}
}
``
注意: MyBatis-Plus 代码生成器默认使用 Velocity 模板引擎,而本文中用的的Freemarker。如果想用Freemarker仅仅引入依赖是不够的 还需要
// 添加这行配置使用 Freemarker generator.setTemplateEngine(new FreemarkerTemplateEngine());另外本文中用到了swagger 所以还要引入相关依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
529

被折叠的 条评论
为什么被折叠?



