导入依赖

<!--  springboot父工程依赖, 管理springboot依赖的版本  -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <!--   springboot的版本     -->
    <version>3.2.8</version>
</parent>
<!--    MySql驱动    -->
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
</dependency>

<!--        mybatisPlus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
    <version>3.5.11</version>
</dependency>
<!--        代码生成器-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.11</version>
</dependency>
<!--        模板引擎-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

运行代码

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import com.baomidou.mybatisplus.generator.query.SQLQuery;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * 代码生成器
 */
public class CodeGenerate {

    //项目路径
    //TODO 修改:将项目路径改为当前项目路径
    private static final String modeName = "E:\\code\\javaweb\\springboot-web";

    //mysql数据库连接地址
    //TODO 修改:将数据库连接地址改为当前数据库连接地址
    private static final String url = "jdbc:mysql://localhost:3306/tlias";

    //数据库用户名
    //TODO 修改:将数据库用户名改为当前数据库用户名
    private static final String username = "root";

    //数据库密码
    //TODO 修改:将数据库密码改为当前数据库密码
    private static final String password = "1234";

    /**
     * 主方法
     */
    public static void main(String[] args) {
        FastAutoGenerator.create(url, username, password)
                .dataSourceConfig(builder ->
                        builder.databaseQueryClass(SQLQuery.class)
                                .typeConvert(new MySqlTypeConvert())
                                .dbQuery(new MySqlQuery())
                )
                // 全局配置
                .globalConfig((scanner, builder) -> builder.author(scanner.apply("请输入作者名称?"))
//                .globalConfig((scanner, builder) -> builder.author("qiyin")
                        .outputDir(modeName + "\\src\\main\\java")) // 修改:将输出目录设置为当前项目路径
                // 包配置
                .packageConfig((scanner, builder) -> {
                    String packageName = scanner.apply("请输入包名?"); // 获取用户输入的包名
//                    String packageName = "com.it"; // 获取用户输入的包名
                    builder.parent(packageName)
                            .pathInfo(Collections.singletonMap(OutputFile.xml, modeName + "\\src\\main\\resources\\" + packageName.replace(".", "\\") + "\\mapper")); // 修改:拼接包名路径到 mapperXml 文件的输出路径
                })
                // 策略配置
                .strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))
//                .strategyConfig((scanner, builder) -> builder.addInclude(getTables("dept"))
                        .entityBuilder()
                        .enableLombok()
                        .addTableFills(
                                new Column("create_time", FieldFill.INSERT)
                        )
                        .build())
                // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }

    // 处理 all 情况
    protected static List<String> getTables(String tables) {
        return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
    }
}
最后修改:2025 年 09 月 09 日
如果觉得我的文章对你有用,请随意赞赏