161 lines
4.7 KiB
Markdown
161 lines
4.7 KiB
Markdown
# JavaBean生成规范
|
||
|
||
请根据代码示例生成:数据库实体类、枚举类、DTO、VO。
|
||
|
||
## 数据库实体类示例
|
||
|
||
```java
|
||
import com.baomidou.mybatisplus.annotation.IdType;
|
||
import com.baomidou.mybatisplus.annotation.TableField;
|
||
import com.baomidou.mybatisplus.annotation.TableId;
|
||
import com.baomidou.mybatisplus.annotation.TableName;
|
||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||
import io.swagger.v3.oas.annotations.media.Schema;
|
||
import jakarta.validation.constraints.NotBlank;
|
||
import jakarta.validation.constraints.NotNull;
|
||
import lombok.Data;
|
||
import lombok.Getter;
|
||
import org.springframework.format.annotation.DateTimeFormat;
|
||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||
import java.io.Serial;
|
||
import java.io.Serializable;
|
||
import java.time.LocalDate;
|
||
import java.time.LocalDateTime;
|
||
import java.math.BigDecimal;
|
||
|
||
@Data
|
||
@TableName(value = "example_table", autoResultMap = true)
|
||
@Schema(title = "示例表")
|
||
public class ExampleEntity implements Serializable {
|
||
|
||
@Serial
|
||
private static final long serialVersionUID = 1L;
|
||
|
||
@Schema(description = "ID")
|
||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||
@TableField(value = "id")
|
||
@JsonSerialize(using = ToStringSerializer.class)
|
||
private Long id;
|
||
|
||
@NotBlank
|
||
@Schema(description = "字符串")
|
||
@TableField(value = "str_field")
|
||
private String strField;
|
||
|
||
@Schema(description = "整数", defaultValue = "0")
|
||
@TableField(value = "int_field")
|
||
private Integer intField;
|
||
|
||
@Schema(description = "长整数")
|
||
@TableField(value = "long_field")
|
||
@JsonSerialize(using = ToStringSerializer.class)
|
||
private Long longField;
|
||
|
||
@Schema(description = "高精度浮点数")
|
||
@TableField(value = "decimal_field")
|
||
private BigDecimal decimalField;
|
||
|
||
@NotNull
|
||
@Schema(description = "日期类型", pattern = "yyyy-MM-dd")
|
||
@TableField(value = "date_field")
|
||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||
private LocalDate dateField;
|
||
|
||
@NotNull
|
||
@Schema(description = "时间类型", pattern = "yyyy-MM-dd HH:mm:ss")
|
||
@TableField(value = "time_field")
|
||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||
private LocalDateTime timeField;
|
||
|
||
@NotNull
|
||
@Schema(
|
||
title = "状态",
|
||
description = "参考示例值",
|
||
example = StateEnum.DESC
|
||
)
|
||
@TableField(value = "state")
|
||
private StateEnum state;
|
||
|
||
@Schema(description = "JSON类型")
|
||
@TableField(value = "json_field", typeHandler = JacksonTypeHandler.class)
|
||
private JsonField jsonField;
|
||
|
||
@Data
|
||
public static class JsonField implements Serializable {
|
||
|
||
@Serial
|
||
private static final long serialVersionUID = 1L;
|
||
|
||
@Schema(description = "示例字段1")
|
||
private String field1;
|
||
|
||
@Schema(description = "示例字段2")
|
||
private Integer field2;
|
||
}
|
||
|
||
}
|
||
```
|
||
|
||
## DTO、VO
|
||
|
||
```java
|
||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||
import io.swagger.v3.oas.annotations.media.Schema;
|
||
import jakarta.validation.constraints.NotBlank;
|
||
import jakarta.validation.constraints.NotNull;
|
||
import lombok.Data;
|
||
import lombok.Getter;
|
||
import org.springframework.format.annotation.DateTimeFormat;
|
||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||
import java.io.Serial;
|
||
import java.io.Serializable;
|
||
import java.time.LocalDate;
|
||
import java.time.LocalDateTime;
|
||
import java.math.BigDecimal;
|
||
|
||
@Data
|
||
@Schema(title = "DTO示例")
|
||
public class ExampleDTO implements Serializable {
|
||
|
||
@Serial
|
||
private static final long serialVersionUID = 1L;
|
||
|
||
@NotBlank
|
||
@Schema(description = "字符串")
|
||
private String strField;
|
||
|
||
@Schema(description = "长整数")
|
||
@JsonSerialize(using = ToStringSerializer.class)
|
||
private Long longField;
|
||
|
||
@NotNull
|
||
@Schema(description = "日期类型", pattern = "yyyy-MM-dd")
|
||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||
private LocalDate dateField;
|
||
|
||
@NotNull
|
||
@Schema(description = "时间类型", pattern = "yyyy-MM-dd HH:mm:ss")
|
||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||
private LocalDateTime timeField;
|
||
|
||
@NotNull
|
||
@Schema(
|
||
title = "状态",
|
||
description = "参考示例值",
|
||
example = StateEnum.DESC
|
||
)
|
||
private StateEnum state;
|
||
|
||
}
|
||
```
|
||
|
||
## 枚举类代码示例
|
||
|
||
[enums.md](./enums.md) |