枚举类的定义概念不做过多解释,这里只说在实际开发中的应用。
使用场景:前端传来的参数为“男”、“女”、“未知”,后台数据库保存的则为tinyint类型的1、2、3;
一、定义枚举类
(这里必须是value变量,mybatisplus里进行了对应的处理)
package com.tanhua.sso.enums;
import com.baomidou.mybatisplus.core.enums.IEnum;
import lombok.AllArgsConstructor;
@AllArgsConstructor
public enum SexEnums implements IEnum<Integer> {
MAN(1, "男"),
WOMAN(2, "女"),
UNKNOWN(3, "未知");
private Integer value;
private String desc;
public Integer getValue() {
this.value = value;
return value;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
@Override
public String toString() {
return desc;
}
}
二、在用户信息里定义枚举类
package com.tanhua.sso.pojo;
import com.tanhua.sso.enums.SexEnums;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo extends BasePojo {
private SexEnums sex; //===============================性别
private Long id;
private Long userId; //用户id
private String nickName; //昵称
private String logo; //用户头像
private String tags; //用户标签:多个用逗号分隔
private Integer age; //年龄
private String edu; //学历
private String city; //城市
private String birthday; //生日
private String coverPic; // 封面图片
private String industry; //行业
private String income; //收入
private String marriage; //婚姻状态
}
三、向数据库插入数据
//这个是持久层里UserInfoMapper的实现
package com.tanhua.sso.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tanhua.sso.pojo.UserInfo;
public interface UserInfoMapper extends BaseMapper<UserInfo> {
}
====================================================================
package com.tanhua.sso;
import com.tanhua.sso.enums.SexEnums;
import com.tanhua.sso.mapper.UserInfoMapper;
import com.tanhua.sso.pojo.UserInfo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class HuanXinTest {
@Resource
private UserInfoMapper userInfoMapper;
@Test
public void testEm(){
UserInfo userInfo=new UserInfo();
//SexEnums.MAN为男,SexEnums实现了mybatisplus里IEnum<Integer>接口
//根据value字段处理成对应数值存入数据库。
userInfo.setSex(SexEnums.UNKNOWN);
userInfo.setCity("北京");
userInfoMapper.insert(userInfo);
}
}