liding
5 天以前 8a535e72a7a0719c3078e9447fe0faefafa27231
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package com.ruoyi.generator;
 
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
 
import java.util.Collections;
 
/**
 * MyBatis-Plus 代码生成器
 */
public class PlusCodeGenerator {
 
    public static void main(String[] args) {
        // 数据库配置
        String url = "jdbc:postgresql://lunor.cn:5431/ruoyi-java";
        String username = "test";
        String password = "chj123456";
 
        // 项目基础包名
        String basePackage = "com.example";
 
        String projectPath = System.getProperty("user.dir");
 
        FastAutoGenerator.create(url, username, password)
                .globalConfig(builder -> {
                    builder.author("your name") // 设置作者
                            .outputDir(System.getProperty("user.dir") + "/src/main/java") // 指定输出目录
                            .dateType(DateType.ONLY_DATE) // 设置时间类型策略
                            .disableOpenDir(); // 禁止打开输出目录
                })
                .packageConfig(builder -> {
                    builder.parent(basePackage) // 设置父包名
                            .moduleName("test") // 设置父包模块名
                            .entity("entity") // 设置实体类包名
                            .mapper("mapper") // 设置 Mapper 接口包名
                            .service("service") // 设置 Service 接口包名
                            .serviceImpl("service.impl") // 设置 Service 实现类包名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "/src/main/resources/mapper")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.addInclude("test") // 设置需要生成的表名
                            .addTablePrefix("t_", "sys_") // 设置过滤表前缀
                            // Entity 策略配置
                            .entityBuilder()
                            .enableLombok() //开启 Lombok
                            .naming(NamingStrategy.underline_to_camel)  //数据库表映射到实体的命名策略:下划线转驼峰命
                            .columnNaming(NamingStrategy.underline_to_camel)    //数据库表字段映射到实体的命名策略:下划线转驼峰命
                            .enableFileOverride() // 覆盖已经生成的Entity文件
                            .logicDeleteColumnName("deleted") // 设置逻辑删除字段
                            .addTableFills(
                                    new Column("deleted", FieldFill.INSERT),
                                    new Column("create_time", FieldFill.INSERT),
                                    new Column("update_time", FieldFill.INSERT_UPDATE),
                                    new Column("create_user", FieldFill.INSERT),
                                    new Column("update_user", FieldFill.INSERT_UPDATE)
                            )
                            .idType(IdType.AUTO) // 自增主键
                            .enableTableFieldAnnotation() // 开启生成实体时生成字段注解
                            // Mapper 策略配置
                            .mapperBuilder()
                            .enableFileOverride() // 覆盖已生成Mapper文件
                            .enableBaseResultMap() // 自动生成resultMap
                            .enableBaseColumnList() // 启用 BaseColumnList
                            // Service 策略配置
                            .serviceBuilder()
                            .formatServiceFileName("%sService")
                            .formatServiceImplFileName("%sServiceImpl")
                            .enableFileOverride() // 覆盖已生成文件
                            // Controller 策略配置
                            .controllerBuilder()
                            .enableRestStyle() // 开启RestController注解
                            .enableFileOverride() // 覆盖已生成文件
                    ;
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎
                .execute();
    }
}