@TOC
mybatis-plus代码生成
导入依赖
1 2 3 4 5 6 7 8 9 10
| <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>XXX</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>XXX</version> </dependency>
XML
|
测试类中编写如下:
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
| import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.Collections;
public class GeneratorTest { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/hao?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8"; String userName = "XXXXXX"; String password = "XXXXXX"; FastAutoGenerator.create(url, userName, password) .globalConfig(builder -> { builder.author("lihao") .enableSwagger() .fileOverride() .disableOpenDir() .outputDir("E:\\code\\gitee\\hao\\hao-blog\\src\\main\\java"); }) .packageConfig(builder -> { builder.parent("com.hao") .moduleName("") .entity("entity") .service("service") .serviceImpl("service.impl") .mapper("mapper") .xml("mapper.xml") .controller("controller") .other("other") .pathInfo(Collections.singletonMap(OutputFile.xml, "E:\\code\\gitee\\hao\\hao-blog\\src\\main\\java\\com\\hao\\mapper")); }) .strategyConfig(builder -> { builder.entityBuilder() .enableLombok(); }) .strategyConfig(builder -> { builder.controllerBuilder() .enableRestStyle(); })
.strategyConfig(builder -> { builder.mapperBuilder() .enableBaseResultMap() .enableBaseColumnList(); }) .strategyConfig(builder -> { builder.addInclude("xxx", "xxx") .addTablePrefix(""); }) .templateEngine(new FreemarkerTemplateEngine()) .execute();
} }
JAVA
|
编辑好后,运行即可生成基础代码。
更改springfox 格式的doc为springdoc格式
因为默认生成的代码中,model的doc为springfox,我们需要调整为springdoc。
映射关系如下:
1 2 3 4 5 6 7 8 9 10
| @Api -> @Tag @ApiIgnore -> @Parameter(hidden = true) or @Operation(hidden = true) or @Hidden @ApiImplicitParam -> @Parameter @ApiImplicitParams -> @Parameters @ApiModel -> @Schema @ApiModelProperty(hidden = true) -> @Schema(accessMode = READ_ONLY) @ApiModelProperty -> @Schema @ApiOperation(value = "foo", notes = "bar") -> @Operation(summary = "foo", description = "bar") @ApiParam -> @Parameter @ApiResponse(code = 404, message = "foo") -> @ApiResponse(responseCode = "404", description = "foo")
LESS
|
例如:
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
| package com.hao.entity;
import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data;
import java.io.Serializable; import java.time.LocalDateTime;
@Data @TableName("user") @Schema(title = "User对象") public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(title = "用户ID") private String id;
@Schema(title = "用户昵称") private String nickName;
@Schema(title = "用户姓名") private String userName;
@Schema(title = "年龄") private Integer age;
@Schema(title = "性别-1男2女-默认1") private Integer sex;
@Schema(title = "电子邮箱") private String email;
@Schema(title = "手机号") private String phone;
@Schema(title = "状态-1.正常-2.锁定-默认1") private Integer status;
@Schema(title = "创建时间") private LocalDateTime createTime;
@Schema(title = "修改时间") private LocalDateTime updateTime;
@Schema(title = "创建者") private String createUser;
@Schema(title = "修改者") private String updateUser; }
JAVA
|
彩蛋
idea免重启自动部署已修改的Java文件。
当我们以debug模式启动springboot项目后,如果有对Java代码做修改,但我们又不想每次修改完之后重启项目,想立马看到修改后的效果。
其实idea有自带这个特性,比devtools个人感觉好用,也比较简单。
在idea的启动配置里,选择modify options,配置 on update action即可。
在这里插入图片描述
下次,我们如果在运行中对Java代码有修改,可以直接ctr+F9,或者点击一个锤子图标:Builde Project。那么一般情况下,是不需要重启项目的。
另:如果是一些特殊的更改,比如配置文件、注解标签之类的,还是需要重启项目的。