mitao
2025-01-01 fdc57356aba027cd3e788b368347063f4008c241
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
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
import com.sinata.common.entity.BaseModel;
import org.junit.jupiter.api.Test;
 
public class MybatisPlusGeneraotr {
 
    @Test
    void mybatisPlusGenerator() {
        FastAutoGenerator
                // 数据源配置
                .create(
                        "jdbc:dm://localhost:5236/MEDICAL_WASTE?rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8",
                        "SYSDBA",     // 达梦数据库模式名
                        "SYSDBA"        // 密码
                )
                // 全局配置
                .globalConfig(
                        builder -> {
                            builder
                                    .author("mitao")              // 作者
                                    //.outputDir(System.getProperty("user.dir") + "/src/main/java")    // 指定输出目录
                                    .outputDir("F:\\喜望软件\\code\\YiFeiNN\\medicalWaste-system\\src\\main\\java")    // 指定输出目录
                                    .commentDate("yyyy-MM-dd")// 注释的日期
                                    // 修改Date类型为LocalDateTime
                                    //.dateType(DateType.ONLY_DATE)
                                    .enableSwagger()
                                    .fileOverride()
                                    .disableOpenDir();                                            // 禁止打开输出目录,默认:true
                        }
                )
                // 包配置
                .packageConfig(
                        builder -> {
                            builder
                                  //.moduleName(System.getProperty("user.dir").substring(System.getProperty("user.dir").lastIndexOf("\\") + 1))   // 设置父包模块名
                                    .parent("com.sinata.system")           // 父包名
                                    .entity("domain")                                          // 实体类包名
                                    //.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "/src/main/resources/mapper"))   // 设置 mapperXml 生成路径
                                    .other("utils");                                                // 自定义文件包名
                        }
                )
                // 策略配置
                .strategyConfig(
                        builder -> {
                            builder
                                    // 在这里添加数据库表名
                                    //.addInclude("MW_BOX")
                                    .addInclude("MW_TRANSIT_CAR_COLLECT_POINT")// 设置需要生成的表名,多个表之间可以用逗号隔开
                                    // .addExclude("BBZQ_USER","BBZQ_USER_LOG")
                                    .controllerBuilder().enableRestStyle()         // controller配置策略
                                    .serviceBuilder().formatServiceFileName("%sService")            // service配置策略
                                    .mapperBuilder().enableBaseColumnList().enableBaseResultMap().enableMapperAnnotation()     // mapper配置策略
                                    .entityBuilder().enableLombok().enableRemoveIsPrefix().enableTableFieldAnnotation()       // 实体配置策略
                                    //.logicDeleteColumnName("del_flag")                  // 逻辑删除字段名
                                    .naming(NamingStrategy.underline_to_camel)            // 数据库表映射到实体的命名策略,下划线转驼峰
                                    .columnNaming(NamingStrategy.underline_to_camel)      // 数据库表字段映射的命名策略,下划线转驼峰
                                    .superClass(BaseModel.class)
                                    //.addTableFills(    // 添加表字段填充,"create_time"自动填充为插入时间,"update_time"自动填充为修改时间
                                    //        new Column("create_time", FieldFill.INSERT),
                                    //        new Column("create_by", FieldFill.INSERT),
                                    //        new Column("update_time", FieldFill.INSERT_UPDATE),
                                    //        new Column("update_by", FieldFill.INSERT_UPDATE)
                                    //)
                                    .idType(IdType.AUTO);
                        }
                )
                // 模板配置
                .templateEngine(new VelocityTemplateEngine())    // 使用的是默认的 Velocity 引擎模板
                // 执行
                .execute();
    }
}