mybatis-plus程式碼生成

RepublicLine發表於2024-03-16

新增依賴:

<!-- 程式碼自動生成器依賴-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.3.1</version>
</dependency>

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
</dependency>

快速生成

public class Generate {
    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/dbtest?useUnicode=true&characterEncoding=UTF-8",
                        "root",
                        "123456")
                .globalConfig(builder -> {
                    builder.author("wang") // 設定作者
                            .enableSwagger() // 開啟 swagger 模式
                            .fileOverride() // 覆蓋已生成檔案
                            .outputDir("E:\\springboot\\bootdemo\\src\\main\\java"); // 指定輸出目錄
                })
                .dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
                    int typeCode = metaInfo.getJdbcType().TYPE_CODE;
                    if (typeCode == Types.SMALLINT) {
                        // 自定義型別轉換
                        return DbColumnType.INTEGER;
                    }
                    return typeRegistry.getColumnType(metaInfo);

                }))
                .packageConfig(builder -> {
                    builder.parent("com.itszt.bootdemo") // 設定父包名
//                            .moduleName("test") // 設定父包模組名
                            .entity("pojo") //設定entity包名
                            .mapper("mapper") //設定mapper包名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, "E:\\springboot\\bootdemo\\src\\main\\resources\\mappers")); // 設定mapperXml生成路徑

                })
                .strategyConfig(builder -> {
                    builder.addInclude("user"); // 設定需要生成的表名
//                            .addTablePrefix("t_", "c_"); // 設定過濾表字首
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,預設的是Velocity引擎模板
                .execute();
    }
}

相關文章