夜间模式
枚举转化器
配置枚举处理器
YAML
mybatis-plus:
configuration:
default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
1
2
3
2
3
实例
创建枚举类
java
@Getter
public enum UserStatus {
NORMAL(1, "正常"),
FREEZE(2, "冻结")
;
@EnumValue // 枚举值
private final int value;
private final String desc;
UserStatus(int value, String desc) {
this.value = value;
this.desc = desc;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
修改实体类
java
public class User {
/**
* 用户id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
....
/**
* 使用状态(1正常 2冻结)
*/
private UserStatus status;
....
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
java
public class User {
/**
* 用户id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
....
/**
* 使用状态(1正常 2冻结)
*/
private Integer status;
...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
查询的结果:
json
{
"id": 2,
"username": "Rose",
"info": "{\"age\": 19, \"intro\": \"青涩少女\", \"gender\": \"female\"}",
"status": 1,
"balance": 0,
"addressList": [....]
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
json
{
"id": 2,
"username": "Rose",
"info": "{\"age\": 19, \"intro\": \"青涩少女\", \"gender\": \"female\"}",
"status": "NORMAL",
"balance": 0,
"addressList": [...]
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
在程序中也更好的提高了可阅读性
java
//是否为正常
if (user == null || user.getStatus()==2 ) {
throw new RuntimeException("用户异常");
}
1
2
3
4
2
3
4
java
//是否为正常
if (user == null || user.getStatus()== UserStatus.FREEZE ) {
throw new RuntimeException("用户异常");
}
1
2
3
4
2
3
4
显示枚举的描述而不是枚举名称
java
@Getter
public enum UserStatus {
NORMAL(1, "正常"),
FREEZE(2, "冻结")
;
@EnumValue // 枚举值
private final int value;
private final String desc;
UserStatus(int value, String desc) {
this.value = value;
this.desc = desc;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
json
{
"id": 2,
"username": "Rose",
"info": "{\"age\": 19, \"intro\": \"青涩少女\", \"gender\": \"female\"}",
"status": "NORMAL",
"balance": 0,
"addressList": [...]
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
java
@Getter
public enum UserStatus {
NORMAL(1, "正常"),
FREEZE(2, "冻结")
;
@EnumValue // 枚举值
private final int value;
@JsonValue
private final String desc;
UserStatus(int value, String desc) {
this.value = value;
this.desc = desc;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
json
{
"id": 2,
"username": "Rose",
"info": "{\"age\": 19, \"intro\": \"青涩少女\", \"gender\": \"female\"}",
"status": "正常",
"balance": 0,
"addressList": [...]
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
TIP
@JsonValue
注解在谁的那里就显示哪一个值,默认为枚举描述,可省略