MyBatis-Plus 核心功能-代碼生成器(新)

2022-03-23 16:06 更新

注意:適用版本:mybatis-plus-generator 3.5.1 及其以上版本,對(duì)歷史版本不兼容!

快速入門(mén)

安裝

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.2</version>
</dependency>

當(dāng)前包未傳遞依賴 MP 包,需要自己引入!

使用

快速生成

FastAutoGenerator.create("url", "username", "password")
    .globalConfig(builder -> {
        builder.author("baomidou") // 設(shè)置作者
            .enableSwagger() // 開(kāi)啟 swagger 模式
            .fileOverride() // 覆蓋已生成文件
            .outputDir("D://"); // 指定輸出目錄
    })
    .packageConfig(builder -> {
        builder.parent("com.baomidou.mybatisplus.samples.generator") // 設(shè)置父包名
            .moduleName("system") // 設(shè)置父包模塊名
            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://")); // 設(shè)置mapperXml生成路徑
    })
    .strategyConfig(builder -> {
        builder.addInclude("t_simple") // 設(shè)置需要生成的表名
            .addTablePrefix("t_", "c_"); // 設(shè)置過(guò)濾表前綴
    })
    .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默認(rèn)的是Velocity引擎模板
    .execute();

交互式生成

FastAutoGenerator.create(DATA_SOURCE_CONFIG)
    // 全局配置
    .globalConfig((scanner, builder) -> builder.author(scanner.apply("請(qǐng)輸入作者名稱(chēng)?")).fileOverride())
    // 包配置
    .packageConfig((scanner, builder) -> builder.parent(scanner.apply("請(qǐng)輸入包名?")))
    // 策略配置
    .strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("請(qǐng)輸入表名,多個(gè)英文逗號(hào)分隔?所有輸入 all")))
                        .controllerBuilder().enableRestStyle().enableHyphenStyle()
                        .entityBuilder().enableLombok().addTableFills(
                                new Column("create_time", FieldFill.INSERT)
                        ).build())
    /*
        模板引擎配置,默認(rèn) Velocity 可選模板引擎 Beetl 或 Freemarker
       .templateEngine(new BeetlTemplateEngine())
       .templateEngine(new FreemarkerTemplateEngine())
     */
    .execute();


// 處理 all 情況
protected static List<String> getTables(String tables) {
    return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)