使用场景:
开发中,数据库表的某字段的值是固定的,就可以使用枚举实现这个功能。例如性别的值,一般只有男女两种取值
具体操作如下:
第一步: 在数据库中添加性别sex字段,类型为int,例如1或2,分别表示男或女
alter table t_user add sex int;
第二步: 在src/main/java/com.huanf.mybatisplus目录下新建枚举类,例如新建Enum,名字为enums.SexEnums。写入如下
xxxxxxxxxx//枚举类 //写了这个注解就不需要我们写get方法了public enum SexEnums { MALE(1,"男"), FEMALE(2,"女"); //该注解在属性(成员变量)上方,然后去application.yml去配置枚举扫描,这该注解被扫描后可以映射为对应的数据库类型 private Integer sex; private String sexName;
//有参构造 SexEnums(Integer sex, String sexName) { this.sex = sex; this.sexName = sexName; }}
第三步: 在application.yml里面添加如下
#SexEnums枚举类里面使用了@EnumValue注解,如果想要被扫描到,需要在这里添加扫描枚举包的配置type-enums-packagecom.huanf.mybatisplus.enums
同时我也把目前application.yml的配置写到下面spring #配置数据源信息 datasource #配置数据源类型 typecom.zaxxer.hikari.HikariDataSource #配置连接数据库信息 driver-class-namecom.mysql.cj.jdbc.Driver urljdbcmysql//localhost3306/mybatis_plus?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false usernameroot password228675
#mybatis日志,作用是会在控制台生成对应的SQL语句mybatis-plus configuration log-implorg.apache.ibatis.logging.stdout.StdOutImpl
#配置MyBatis-Plus的全局配置 global-config db-config #指定表的前缀,例如t_ table-prefixt_ #指定表的主键生成策略,例如不使用MyBatis-Plus提供的雪花算法,而是使用数据库提供的主键递增策略 id-typeauto
#如果要在UserMapper.xml里面使用别名,那么就要在下一行配置,注意路径到包就行,不用写到类 type-aliases-packagecom.huanf.mybatisplus.pojo
#SexEnums枚举类里面使用了@EnumValue注解,如果想要被扫描到,需要在这里添加扫描枚举包的配置 type-enums-packagecom.huanf.mybatisplus.enums
第四步: 在User类添加如下
private SexEnums sex;
第五步: src/test/java/com.huanf.mybatisplus目录新建MyBatisPlusEnumTest类,作为测试类,写入如下
xxxxxxxxxxpublic class MyBatisPlusEnumTest {
//自动装配的注解,用于使用我们写的UserMapper接口 private UserMapper userMapper;
private void zidingyi_test(){ //由于insert方法需要一个实体类的对象(例如User类),所以我们就创建一个User类的对象 User user = new User(); //为这个对象赋值,简单说就是你要修改成什么数据 user.setName("我是枚举"); user.setAge(23); user.setSex(SexEnums.MALE);//由于我们在SexEnums类创建了枚举,所以直接使用枚举即可 //添加数据。把赋好值的对象放到insert方法里面 int result = userMapper.insert(user);//返回的是受影响的字段 System.out.println("受影响的行数是: "+result); } //成功执行后,去数据库看一下多了一条数据,这条数据的性别是1,也就是SexEnums.MALE,对应的是男}