Mybatis Plus Generator程式碼生成器
阿新 • • 發佈:2022-03-03
Mybatis Plus Generator程式碼生成器
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class GeneratorMain { public static void main(String[] args) { List<String> tables = new ArrayList<>(); tables.add("t_user"); // tables.add("p_question"); // tables.add("p_answer"); // tables.add("p_correct"); FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/generator_demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai" , "root" , "root") .globalConfig(builder -> { builder.author("ximen") // 設定類上註釋作者 // 設定作者下的建立時間 .commentDate("yyyy-MM-dd") .enableSwagger() // 開啟 swagger 模式 .fileOverride() // 覆蓋已生成檔案 .outputDir(System.getProperty("user.dir")+"\\src\\main\\java"); // 指定輸出目錄 }) .packageConfig(builder -> { builder.parent("com.ximen") // 模組包名 .moduleName("demo") .entity("entity") .service("service") .serviceImpl("service.Impl") .controller("controller") .mapper("mapper") .xml("mapper") .pathInfo(Collections.singletonMap(OutputFile.xml,System.getProperty("user.dir")+"\\src\\main\\resources\\mapper")); }) .strategyConfig(builder -> { // 需要生成表的列表 builder.addInclude(tables) // 過濾掉表的字首去生成實體類 .addTablePrefix("t_") // service策略配置 .serviceBuilder() // 設定service類名,%s適配表名 .formatServiceFileName("%sService") // 設定impl類名,%s適配表名 .formatServiceImplFileName("%sServiceImpl") // entity實體類策略配置 .entityBuilder() // 開啟Lombok .enableLombok() // 定義邏輯刪除欄位 // .logicDeleteColumnName("deleted") // 屬性上加說明註解 .enableTableFieldAnnotation() // controller策略配置 .controllerBuilder() // 設定controller類名,%s適配表名 .formatFileName("%sController") // 開啟RestController .enableRestStyle() // mapper策略配置 .mapperBuilder() // 生成通用的resultMap .enableBaseResultMap() // 設定繼承的父類 .superClass(BaseMapper.class) // 設定mapper類名,%s適配表名 .formatMapperFileName("%sMapper") // 開啟@Mapper註解 .enableMapperAnnotation() // 設定mapper的xml名,%s適配表名 .formatXmlFileName("%sMapper"); }) // 使用Freemarker引擎模板,預設的是Velocity引擎模板 .templateEngine(new FreemarkerTemplateEngine()) .execute(); } }