pom引入:有MP了就不要再引入mybatis了,会出bug的- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-boot-starter</artifactId>
- <version>3.5.3.1</version>
- </dependency>
-
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-generator</artifactId>
- <version>3.5.3.1</version>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.13.2</version>
- </dependency>
复制代码 代码主体,隐去ip信息。- package com.sugerqube.XXX.Utils;
- import com.baomidou.mybatisplus.annotation.IdType;
- 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.config.rules.DateType;
- import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
- import org.junit.Test;
- import java.util.Collections;
- public class MPGenerator {
- @Test
- public void testGenerator() {
- //1、配置数据源
- FastAutoGenerator.create("jdbc:mysql://XXXXX/XXXXX", "root", "XXXXX")
- //2、全局配置
- .globalConfig(builder -> {
- builder.author("sugerqube") // 设置作者名
- .disableOpenDir() //禁止打开输出目录,默认打开
- .outputDir(System.getProperty("user.dir") + "/src/main/java") //设置输出路径:项目的 java 目录下
- .enableSwagger() //开启 swagger 模式
- // .enableKotlin()
- // .enableSpringdoc()
- .dateType(DateType.ONLY_DATE) //定义生成的实体类中日期的类型 TIME_PACK=LocalDateTime;ONLY_DATE=Date;
- .commentDate("yyyy-MM-dd hh:mm:ss"); //注释日期
- })
- //3、包配置
- .packageConfig(builder -> {
- builder.parent("com.sugerqube") // 设置父包名
- .moduleName("timecocoon") //设置模块包名
- .entity("entity") //pojo 实体类包名
- .service("service") //Service 包名
- .serviceImpl("serviceImpl") // ***ServiceImpl 包名
- .mapper("mapper") //Mapper 包名
- .xml("mapper") //Mapper XML 包名
- .controller("controller") //Controller 包名
- .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); //配置 mapper.xml 路径信息:项目的 resources 目录下
- })
- //4、策略配置
- .strategyConfig(builder -> {
- // builder.addInclude("incident_point", "incident_sum", "incident_line", "incident_cause_effect", "graph") // 设置需要生成的数据表名
- builder.addInclude("incident_point") // 设置需要生成的数据表名
- .addTablePrefix("t_", "c_") // 设置过滤表前缀
- //4.1、实体类策略配置
- .entityBuilder()
- .enableLombok() //开启 Lombok
- .disableSerialVersionUID() //不实现 Serializable 接口,不生产 SerialVersionUID
- .logicDeleteColumnName("deleted") //逻辑删除字段名
- .naming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略:下划线转驼峰命
- .columnNaming(NamingStrategy.underline_to_camel) //数据库表字段映射到实体的命名策略:下划线转驼峰命
- .idType(IdType.ASSIGN_ID)
- // .addTableFills(new Column("create_time", FieldFill.INSERT))
- // .addTableFills(new Property("modifyTime", FieldFill.INSERT_UPDATE))
- .enableTableFieldAnnotation() // 开启生成实体时生成字段注解
- .enableFileOverride()
- //4.2、Controller策略配置
- .controllerBuilder()
- .formatFileName("%sController") //格式化 Controller 类文件名称,%s进行匹配表名,如 UserController
- .enableRestStyle() //开启生成 @RestController 控制器
- // .enableFileOverride()
- //4.3、service 策略配置
- .serviceBuilder()
- .formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名,如 UserService
- .formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名,如 UserServiceImpl
- // .enableFileOverride()
- //4.4、Mapper策略配置
- .mapperBuilder()
- .superClass(BaseMapper.class) //设置父类
- .formatMapperFileName("%sMapper") //格式化 mapper 文件名称
- .enableMapperAnnotation() //开启 @Mapper 注解
- // .enableFileOverride()
- .formatXmlFileName("%sXml"); //格式化 Xml 文件名称
- })
- //6、执行
- .execute();
- }
- }
复制代码 下次有空写一篇详解,带大家简单讲一下使用,看一下文档和源码,新代码生成器的文档有一点点跟不上源码。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |