题记部分
001 || 引入依赖
<!-- Code Generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.9</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.32</version>
</dependency>
002 || 核心内容
package com.harley.common;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import java.util.Collections;
import java.util.Scanner;
/**
* @author harley
* @since 2024-12-09 22:00:02
*/
public class CodeGenerator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 获取数据库连接信息
System.out.println("请输入数据库URL:");
String dbUrl = scanner.nextLine();
System.out.println("请输入数据库用户名:");
String dbUsername = scanner.nextLine();
System.out.println("请输入数据库密码:");
String dbPassword = scanner.nextLine();
// 获取其他配置信息
System.out.println("请输入作者名字:");
String author = scanner.nextLine();
System.out.println("请输入父包名(例如:com.yourcompany):");
String parentPackage = scanner.nextLine();
System.out.println("请输入模块名(例如:module-name):");
String moduleName = scanner.nextLine();
System.out.println("请输入需要生成的表名(多个表以逗号分隔):");
String tableNames = scanner.nextLine();
FastAutoGenerator.create(dbUrl, dbUsername, dbPassword)
.globalConfig(builder -> {
builder.author(author) // 设置作者名
.outputDir(System.getProperty("user.dir") + "/src/main/java"); // 设置输出目录
})
.packageConfig(builder -> {
builder.parent(parentPackage) // 设置父包名
.moduleName(moduleName) // 设置模块名
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); // 设置mapper.xml生成路径
})
.strategyConfig(builder -> {
builder.addInclude(tableNames.split(",")) // 设置需要生成的表名
.entityBuilder() // 实体类生成策略
.enableLombok() // 开启 Lombok 模型
.logicDeleteColumnName("deleted") // 逻辑删除字段名
.controllerBuilder() // 控制器生成策略
.enableRestStyle() // REST 风格控制器
.enableHyphenStyle() // 使用连字符命名风格
.serviceBuilder() // Service 生成策略
.formatServiceFileName("%sService") // 格式化 service 文件名
.formatServiceImplFileName("%sServiceImpl") // 格式化 serviceImpl 文件名
.mapperBuilder() // Mapper 生成策略
.enableBaseColumnList() // 启用 BaseColumnList
.enableBaseResultMap(); // 启用 BaseResultMap
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用 FreeMarker 引擎,默认是 Velocity
.execute(); // 执行代码生成
System.out.println("代码生成完成!");
scanner.close();
}
}
003 || 使用
直接运行代码
标签:代码生成,scanner,JavaUtils,nextLine,System,String,println,out,04 From: https://www.cnblogs.com/houhuilinblogs/p/18596207