【Mybatis】-自定义Enum映射

前言

在使用mybatis作为orm映射时往往会涉及到枚举值的映射,如果mysql数据库中的数据使用的是enum类型,那么映射到系统中对应的值也应该是一个枚举字段,mybatis提供了枚举值的自动映射,分别是EnumTypeHandler和EnumOrdinalTypeHandler两个控制类来实现的,是针对的普通枚举来映射的,但是对于自定义的复杂枚举这两种根本就无法处理,需要自定义一个枚举类型控制器,如下将会详细介绍自定义枚举控制器的方法。

映射具体实现

程序准备

数据结构

 CREATE TABLE `product` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT '',
  `store` int(11) DEFAULT '0',
  `sex` enum('M','F','N') DEFAULT NULL,
  `is_enable` smallint(6) DEFAULT '0',
  `utime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `ctime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

需要映射的实体类

package com.jesse.modules.test;

import com.jesse.modules.test.enums.EnableEnum;
import com.jesse.modules.test.enums.SexEnum;

import java.util.Date;

public class TestModel {
   

    private int id;
    private String name;
    private Integer store;
    private Date utime;
    private Date ctime;
    private SexEnum sex;
    private EnableEnum isEnable;

    public Integer getStore() {
   
        return store;
    }

    public void setStore(Integer store) {
   
        this.store = store;
    }

    public Date getUtime() {
   
        return utime;
    }

    public void setUtime(Date utime) {
   
        this.utime = utime;
    }

    public Date getCtime() {
   
        return ctime;
    }

    public void setCtime(Date ctime) {
   
        this.ctime = ctime;
    }

    public int getId() {
   
        return id;
    }

    public void setId(int id) {
   
        this.id = id;
    }

    public Stri
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值