|
| 1 | +package com.quick.utils; |
| 2 | + |
| 3 | +import com.baomidou.mybatisplus.annotation.FieldFill; |
| 4 | +import com.baomidou.mybatisplus.annotation.IdType; |
| 5 | +import com.baomidou.mybatisplus.generator.FastAutoGenerator; |
| 6 | +import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; |
| 7 | +import com.baomidou.mybatisplus.generator.config.OutputFile; |
| 8 | + |
| 9 | +import java.util.Arrays; |
| 10 | +import java.util.Collections; |
| 11 | +import java.util.List; |
| 12 | + |
| 13 | +public class MyBatisPlusGenerator { |
| 14 | + |
| 15 | + public static final String OUT_DIR = "D:\\github\\spring-boot-quick\\quick-archetype\\src\\main\\java"; |
| 16 | + |
| 17 | + |
| 18 | + // 处理 all 情况 |
| 19 | + protected static List<String> getTables(String tables) { |
| 20 | + return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(",")); |
| 21 | + } |
| 22 | + |
| 23 | + public static void main(String[] args) { |
| 24 | + FastAutoGenerator.create("jdbc:mysql://closnew-m.dbsit.sfcloud.local:3306/clos?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true", "clos", "aemycusn2g") |
| 25 | + // 全局配置 |
| 26 | + .globalConfig((scanner, builder) -> { |
| 27 | + builder.author(scanner.apply("请输入作者")).fileOverride(); |
| 28 | + builder.outputDir(OUT_DIR); |
| 29 | + }) |
| 30 | + // 包配置 |
| 31 | + .packageConfig((scanner, builder) -> { |
| 32 | + builder |
| 33 | +// .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "/src/main/resources/mapper")) |
| 34 | + .parent(scanner.apply("请输入包名?")); |
| 35 | + }) |
| 36 | + // 策略配置 |
| 37 | + .strategyConfig((scanner, builder) -> { |
| 38 | + builder.addInclude(MyBatisPlusGenerator.getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all"))) |
| 39 | + .controllerBuilder() |
| 40 | + .enableRestStyle() |
| 41 | + .enableHyphenStyle() |
| 42 | + .build(); |
| 43 | + |
| 44 | + builder.serviceBuilder() |
| 45 | + .formatServiceFileName("%sService") |
| 46 | + .formatServiceImplFileName("%sServiceImp") |
| 47 | + .build(); |
| 48 | + //entity的策略配置 |
| 49 | + builder.entityBuilder() |
| 50 | + .enableLombok() |
| 51 | + .enableTableFieldAnnotation() |
| 52 | + .versionColumnName("version") |
| 53 | + .logicDeleteColumnName("is_delete") |
| 54 | + .columnNaming(NamingStrategy.underline_to_camel) |
| 55 | +// .idType(IdType.AUTO) |
| 56 | + .formatFileName("%sEntity") |
| 57 | + .build(); |
| 58 | + |
| 59 | + // mapper xml配置 |
| 60 | + builder.mapperBuilder() |
| 61 | + .formatMapperFileName("%sMapper") |
| 62 | + .enableBaseColumnList() |
| 63 | + .enableBaseResultMap() |
| 64 | + .build(); |
| 65 | + }) |
| 66 | + .execute(); |
| 67 | + } |
| 68 | +} |
0 commit comments