package com.starry.generator;

import com.starry.generator.config.GeneratorConfig;
import com.starry.generator.core.CodeGenerator;

/**
 * 代码生成器主类 通过main方法直接运行生成代码
 *
 * @author admin
 * @since 2024-01-01
 */
public class MainGenerator {

    public static void main(String[] args) {
        // 数据库配置
        GeneratorConfig config = new GeneratorConfig();
        config.setUrl(
                "jdbc:mysql://122.51.20.105:3306/play-with?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
        config.setDriverName("com.mysql.cj.jdbc.Driver");
        config.setUsername("root");
        config.setPassword("KdaKRZ2trpdhNePa");

        // 生成配置
        config.setAuthor("huchuansai");
        config.setPackageName("com.starry.admin");
        config.setOutputDir("./generated-code");
        config.setAutoRemovePre(false);
        config.setTablePrefix("sys_");

        // 要生成的表名（可以配置多个）
        String[] tableNames = {"sys_role",};

        // 创建代码生成器并执行生成
        CodeGenerator generator = new CodeGenerator(config);

        try {
            System.out.println("开始生成代码...");
            generator.generateCode(tableNames);
            System.out.println("代码生成完成！输出目录：" + config.getOutputDir());
        } catch (Exception e) {
            System.err.println("代码生成失败：" + e.getMessage());
            e.printStackTrace();
        }
    }
}
