Files
yjearth/src/main/java/com/yj/earth/common/util/CodeUtil.java
2025-09-22 17:13:22 +08:00

87 lines
3.7 KiB
Java

package com.yj.earth.common.util;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.fill.Column;
import com.yj.earth.datasource.DatabaseManager;
import java.io.File;
import java.util.Collections;
public class CodeUtil {
// SQLite数据库配置
private static String databasePath = null;
private static String author = "周志雄";
public static void main(String[] args) {
DatabaseManager.initDatabase(DatabaseManager.DatabaseType.SQLITE);
databasePath = DatabaseManager.getSqliteDbFilePath();
// 检查数据库路径是否有效
if (databasePath == null || databasePath.trim().isEmpty()) {
throw new RuntimeException("数据库路径未正确初始化");
}
// 确保数据库目录存在
File dbFile = new File(databasePath);
File parentDir = dbFile.getParentFile();
if (!parentDir.exists()) {
parentDir.mkdirs();
}
// 传入需要生成代码的表名
Generation("business_config");
}
public static void Generation(String... tableName) {
// 构建SQLite连接URL
String jdbcUrl = "jdbc:sqlite:" + databasePath;
// FastAutoGenerator 用来创建代码生成器实例
FastAutoGenerator.create(jdbcUrl, "", "")
.globalConfig(builder -> {
builder.author(author)
.enableSpringdoc()
.outputDir(System.getProperty("user.dir") + "/src/main/java");
}).packageConfig(builder -> {
builder.entity("domain")
.parent("com.yj.earth.business")
.controller("controller")
.mapper("mapper")
.service("service")
.serviceImpl("service.impl")
.pathInfo(Collections.singletonMap(OutputFile.xml,
System.getProperty("user.dir") + "/src/main/resources/mapper"));
}).strategyConfig(builder -> {
builder.addInclude(tableName)
.addTablePrefix("t_")
.entityBuilder()
.enableLombok()
.enableChainModel()
.addTableFills(new Column("created_at", FieldFill.INSERT),
new Column("updated_at", FieldFill.UPDATE))
.naming(NamingStrategy.underline_to_camel)
.columnNaming(NamingStrategy.underline_to_camel)
.idType(IdType.ASSIGN_UUID)
.formatFileName("%s")
.mapperBuilder()
.enableMapperAnnotation()
.enableBaseResultMap()
.enableBaseColumnList()
.formatMapperFileName("%sMapper")
.formatXmlFileName("%sMapper")
.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
.controllerBuilder()
.enableRestStyle()
.formatFileName("%sController")
.enableHyphenStyle();
}).execute();
}
}