文章目录
目录
文章目录
前言
一、环境准备
二、使用步骤
一 实体类
二 枚举类
三 持久层
四 控制层
总结
前言
枚举是一种表示一组有限可能取值的数据类型。它具有以下几个好处:
-
易于理解和维护:枚举提供了一种清晰明了的方式来表示一组具体的取值,使代码更易于理解和维护。通过使用枚举,开发人员可以将相关的取值归类并命名,使代码更加可读。
-
类型安全:枚举在编译时进行类型检查,确保程序在使用枚举值时不会出现类型错误。这提供了更高的类型安全性,减少因为传递、比较或赋值错误而引入的问题。
-
可读性强:枚举常量通常使用具有描述性的名称,使代码更易于理解和阅读。相对于用数字或字符串直接表示取值,枚举常量提供了更好的代码可读性和可维护性。
-
防止无效取值:通过使用枚举,可以限制变量只能取枚举常量中定义的值,从而避免了使用无效或非预期取值的情况。这有助于减少错误和异常情况的发生。
-
更好的代码表达意图:枚举常量表示一组相关的取值,通过使用枚举,可以更直观地表达代码的意图和目的。这有助于提高代码的可读性和可维护性。
一、环境准备
spring boot +mybatis-plus+mysql
引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
配置枚举类识别
#配置mybatis-plus日志和枚举扫描配置
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#枚举识别前置器
default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler
mapper-locations: classpath:/mapper/*.xml
#枚举类扫描路径
type-enums-package: com.rcg.enums
二、使用步骤
一 实体类
@TableName(value ="test_enum")
@Data
public class MyEnum {
private Integer id;
private String name;
//枚举类型的性别
private GenderEnum sex;
}
二 枚举类
需要主要的是实现的泛型类型要和数据库存储的类型一致,并且枚举属性里面必须要有一个能和数据库存储的数据以及类型一致的。也就是泛型类型 枚举属性的其中一个类型 需要和数据库里面要映射的字段保持。
public enum GenderEnum implements IEnum<Integer> {
MALE(0, "男"),
FEMALE(1, "女");
private final int value;
private final String desc;
GenderEnum(int value, String desc) {
this.value = value;
this.desc = desc;
}
@Override
public Integer getValue() {
return value;
}
public String getDesc() {
return desc;
}
}
三 持久层
@Mapper
@Repository
public interface TestEnumMapper extends BaseMapper<MyEnum> {
}
四 控制层
@RestController
@RequestMapping("/test")
public class TestController {
@Resource
private TestEnumMapper enumMapper;
@GetMapping("/test")
public List<MyEnum> test(){
List<MyEnum> myEnums = enumMapper.selectList(null);
return myEnums;
}
}
测试出来的数据结果。符合需要的数据格式。
总结
总之,枚举提供了一种更具表达力和可读性的方式来表示一组有限可能取值的数据类型。它们使代码更易于理解、维护和调试,并提供了更好的类型安全性和错误预防机制。因此,在开发过程中,合理使用枚举可以带来许多好处。