您的当前位置:首页正文

将mybatis查询的int值转换为java枚举

来源:二三四教育网
将mybatis查询的int值转换为java枚举

将数据库中查询的 alarm_type (tiny int类型)转换为java的AlarmTypeEnum类型AlarmTypeEnum字段1、要转换的枚举定义

import java.util.Arrays;import java.util.HashMap;import java.util.Map;

/**

* 告警类型

* ⽬前⽀持邮件告警和,短信告警 */

public enum AlarmTypeEnum { /**

* 短信告警 */

SMS((short) 1), /**

* 邮件告警 */

EMAIL((short) 2);

/**

* 数据库中存储的码号,号码不能重复(注意此处应code和数据库中的⼀致) */

private short code;

private static Map alarmTypes; static {

alarmTypes = new HashMap<>();

AlarmTypeEnum[] values = AlarmTypeEnum.values();

Arrays.stream(values).forEach(alarmTypeEnum -> alarmTypes.put(alarmTypeEnum.getCode(), alarmTypeEnum)); }

AlarmTypeEnum(short code) { this.code = code; }

public short getCode() { return code; }

public static AlarmTypeEnum parseCode(short code) { return alarmTypes.get(code); }

public static void main(String[] args) {

System.out.println(AlarmTypeEnum.parseCode((short) 2)); }}

1、请求实体

import lombok.Data;import lombok.ToString;@ToString@Data

public class AlarmInfoDTO {

/**

* 告警类型 */

private AlarmTypeEnum alarmType; /**

* 告警⼿机号 */

private String alarmPhone;

/**

* 告警的emali邮箱 */

private String alarmEmail;

public void setAlarmType(short alarmTypeCode) {

this.alarmType = AlarmTypeEnum.parseCode(alarmTypeCode); }}

2、CpMapper.xml⽂件

因篇幅问题不能全部显示,请点此查看更多更全内容