public class CodeGenerator {
final static String projectPath = System.getProperty("user.dir") + "/apis/src/main/java";
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入表名,多个英文逗号分隔?所有输入 all");
String tablesStr = null;
if (scan.hasNext()) {
tablesStr = scan.next();
}
scan.close();
List<String> tables = "all".equals(tablesStr) ? Collections.emptyList() : Arrays.asList(tablesStr.split(","));
FastAutoGenerator builder = builder(tables);
builder.execute();
}
private static FastAutoGenerator builder(List<String> tables) {
return FastAutoGenerator.create("jdbc:mysql://192.168.137.133:3306/nacos_config?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false", "root", "abcd!234")
.globalConfig(builder -> {
builder.author("ButiF")// 设置作者
.enableSwagger() // 开启 swagger 模式
.outputDir(projectPath); // 指定输出目录
})
// 包名配置
.packageConfig(builder -> {
builder.parent("com.cloud.butif.apis").entity("domain");
})
//实体策略配置
.strategyConfig(builder -> {
builder.entityBuilder()
//开启Lombok,默认生成@Get,@Set,可以手动换成@Data
.enableColumnConstant()
.enableTableFieldAnnotation()
.columnNaming(NamingStrategy.underline_to_camel)
.enableLombok();
})
//控制类策略配置
.strategyConfig(builder -> {
builder.controllerBuilder()
.enableHyphenStyle()
.enableRestStyle()
.formatFileName("%sController");
})
//服务类策略配置
.strategyConfig(builder -> {
builder.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImp");
})
// 策略配置 包含/排除
.strategyConfig(builder -> {
builder.addInclude(tables);
})
// 使用Freemarker引擎模板,默认的是Velocity引擎模板
.templateEngine(new FreemarkerTemplateEngine());
}
}
<!-- 必备 mybatis-plus-boot-starter 与 mybatis-plus-generator 版本一致-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
<!-- 根据配置选 ↓ -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<!--整合Knife4j 没法swagger-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
网友评论