快速使用
1. 新建工程
新建 Spring Boot 工程
2. 导入依赖坐标
在 pom.xml
文件中导入如下坐标
<!-- mysql 驱动所依赖的坐标 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Druid 数据源所依赖的坐标 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.5</version>
</dependency>
<!-- MyBatis-Plus 整合 Spring Boot 的坐标 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<!-- MyBatis-Plus 代码生成器的坐标 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<!--MyBatis-Plus 代码生成器运行所需要的 freemarker 模板引擎-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
3. 创建代码生成器类
随便编写一个类,并在 main
方法中编写如下内容。
比如这里我编写了一个 CodeGenerator
类。
设置好相应参数后执行 main
方法即可。
public class CodeGenerator {
public static void main(String[] args) {
String path = CodeGenerator.class.getResource(".").getPath();
int i = path.lastIndexOf("/target");
String path2 = path.substring(0, i);
int j = path2.lastIndexOf("/");
String projectName =path2.substring(j+1); // 当前项目的项目名
FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/test", "root", "root")
.globalConfig(builder -> {
builder.author("Texun") // 设置作者
.fileOverride() // 覆盖已生成文件
.outputDir("..\\"+projectName+"\\src\\main\\java"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.texun") // 设置父包名
.moduleName(projectName.toLowerCase()) // 设置父包模块名为当前项目的项目名
.entity("pojo.entity") //设置entity包名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "..\\"+projectName+"\\src\\main\\resources\\mapper")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.controllerBuilder().enableRestStyle(); // 启用RestController注解
builder.mapperBuilder().enableMapperAnnotation(); // 启用Mapper注解
builder.addInclude("user") // 设置需要生成的表名
.addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板
.execute();
}
}