87 lines
3.7 KiB
Java
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();
|
|
}
|
|
}
|