导入依赖
<!-- springboot父工程依赖, 管理springboot依赖的版本 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!-- springboot的版本 -->
<version>3.2.8</version>
</parent>
<!-- MySql驱动 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- mybatisPlus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.11</version>
</dependency>
<!-- 代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.11</version>
</dependency>
<!-- 模板引擎-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
运行代码
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
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.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import com.baomidou.mybatisplus.generator.query.SQLQuery;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* 代码生成器
*/
public class CodeGenerate {
//项目路径
//TODO 修改:将项目路径改为当前项目路径
private static final String modeName = "E:\\code\\javaweb\\springboot-web";
//mysql数据库连接地址
//TODO 修改:将数据库连接地址改为当前数据库连接地址
private static final String url = "jdbc:mysql://localhost:3306/tlias";
//数据库用户名
//TODO 修改:将数据库用户名改为当前数据库用户名
private static final String username = "root";
//数据库密码
//TODO 修改:将数据库密码改为当前数据库密码
private static final String password = "1234";
/**
* 主方法
*/
public static void main(String[] args) {
FastAutoGenerator.create(url, username, password)
.dataSourceConfig(builder ->
builder.databaseQueryClass(SQLQuery.class)
.typeConvert(new MySqlTypeConvert())
.dbQuery(new MySqlQuery())
)
// 全局配置
.globalConfig((scanner, builder) -> builder.author(scanner.apply("请输入作者名称?"))
// .globalConfig((scanner, builder) -> builder.author("qiyin")
.outputDir(modeName + "\\src\\main\\java")) // 修改:将输出目录设置为当前项目路径
// 包配置
.packageConfig((scanner, builder) -> {
String packageName = scanner.apply("请输入包名?"); // 获取用户输入的包名
// String packageName = "com.it"; // 获取用户输入的包名
builder.parent(packageName)
.pathInfo(Collections.singletonMap(OutputFile.xml, modeName + "\\src\\main\\resources\\" + packageName.replace(".", "\\") + "\\mapper")); // 修改:拼接包名路径到 mapperXml 文件的输出路径
})
// 策略配置
.strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))
// .strategyConfig((scanner, builder) -> builder.addInclude(getTables("dept"))
.entityBuilder()
.enableLombok()
.addTableFills(
new Column("create_time", FieldFill.INSERT)
)
.build())
// 使用Freemarker引擎模板,默认的是Velocity引擎模板
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
// 处理 all 情况
protected static List<String> getTables(String tables) {
return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}
}