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(); } }