AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
1 准备工作
创建springboot工程,这里省略。
2 导入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- mybatisplus依赖,注意不用引入mybatis依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.4</version></dependency><!-- mysql依赖可换成对应版本 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><!-- mybatis-plus代码生成器依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version></dependency><!-- 自动生成代码的模板引擎,mybatis-plus默认的--><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency><!-- 由于生成的controller会用到web的注解--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
3 创建CodeGeneratorTest类
需要对
- 数据源配置,(自己数据库对应的url,username,password等)
- 全局配置, (作者信息,输出目录等)
- 包配置, (Entity、Mapper、Mapper XML、Service、Controller 等各个模块的包命名等)
- 策略配置, (配置生成那些表,怎么生成等)
- 模板配置
- 注入配置
注意以下路径需要修改为实制项目路径,要生成的数据库表名需要修改为实制的,数据库源url修改为对应的数据源
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler;
import org.junit.Test;import java.util.Collections;/*** @author: wuKeFan* @date: 2022/2/24 10:39* @version 1.0*/
public class CodeGeneratorTest {@Testpublic void run() {FastAutoGenerator.create(//数据源配置,url需要修改new DataSourceConfig.Builder("url","username","password").dbQuery(new MySqlQuery()).schema("schema").typeConvert(new MySqlTypeConvert()).keyWordsHandler(new MySqlKeyWordsHandler()))//全局配置.globalConfig(builder -> {builder.author("wuKeFan") // 设置作者//.disableOpenDir()//禁止打开输出目录//.enableSwagger() // 开启 swagger 模式.fileOverride() // 覆盖已生成文件.outputDir(System.getProperty("user.dir")+"/src/main/java"); // 指定输出目录})//包配置.packageConfig(builder -> {builder.parent("com.wkf.workrecord.tools.autocode") // 设置父包名,根据实制项目路径修改.moduleName("web") // 父包名路径下再新建的文件夹.entity("entity") // 后面这些是sys文件夹里新建的各分类文件夹.service("service").serviceImpl("service.impl").mapper("mapper").xml("mapper.xml").controller("controller")//.other("other").pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir")+"/src/main/java/com/wkf/workrecord/tools/autocode/web/mapper/xml")); // 存放mapper.xml路径})//策略配置.strategyConfig(builder -> {builder.addInclude("jm_fxy_apply_staging_plan_code") // 设置需要生成的表名.addTablePrefix("jm_") // 设置过滤表前缀.entityBuilder() //实体类配置.enableLombok() //使用lombok.enableTableFieldAnnotation()//实体类字段注解.controllerBuilder()//controller配置.enableRestStyle()//开启restcontroller.mapperBuilder().enableMapperAnnotation()//开启mapper注解.enableBaseResultMap()//启用 BaseResultMap 生成.enableBaseColumnList();//启用 BaseColumnList})//.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}
}
4 运行代码生成器
点击运行上面的main方法就能自动生成了
生成的效果图:
这样代码生成器就写好了,如果需要其他格式模板可以自行参考下面的配置,自行修改
5 数据库配置(DataSourceConfig)
5.1 基础配置
5.2 可选配置
5.3 全局配置(GlobalConfig)
在这里插入图片描述