1.定义枚举类

package com.learn.ssm.chapter4.enumeration;
public enum SexEnum {MALE(1, "男"),FEMALE(0, "女");private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}SexEnum(int id, String name) {this.id = id;this.name = name;}public static SexEnum getSexById(int id) {for (SexEnum sex : SexEnum.values()) {if (sex.getId() == id) {return sex;}}return null;}
}

2.实现typeHandler类

package com.learn.ssm.chapter4.typehandler;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.TypeHandler;import com.learn.ssm.chapter4.enumeration.SexEnum;@MappedTypes(SexEnum.class)
@MappedjdbcTypes(jdbcType.INTEGER)
public class SexEnumTypeHandler implements TypeHandler<SexEnum> {@Overridepublic void setParameter(PreparedStatement ps, int i, SexEnum parameter,JdbcType jdbcType) throws SQLException {ps.setInt(i, parameter.getId());}@Overridepublic SexEnum getResult(ResultSet rs, String columnName)throws SQLException {int id = rs.getInt(columnName);return SexEnum.getSexById(id);}@Overridepublic SexEnum getResult(ResultSet rs, int columnIndex) throws SQLException {int id = rs.getInt(columnIndex);return SexEnum.getSexById(id);}@Overridepublic SexEnum getResult(CallableStatement cs, int columnIndex)throws SQLException {int id = cs.getInt(columnIndex);return SexEnum.getSexById(id);}}

3. 配置

<typeHandlers><!-- <typeHandler jdbcType="VARCHAR" javaType="string" handler="com.learn.ssm.chapter4.typehandler.SexEnumTypeHandler" /> --><package name="com.learn.ssm.chapter4.typehandler" /></typeHandlers>

自定义枚举typeHandler相关推荐

  1. 学习Spring Boot:(十二)Mybatis 中自定义枚举转换器

    前言 在 Spring Boot 中使用 Mybatis 中遇到了字段为枚举类型,数据库存储的是枚举的值,发现它不能自动装载. 解决 内置枚举转换器 MyBatis内置了两个枚举转换器分别是:org. ...

  2. Spring-boot整合MybatisPlus自定义枚举转换器及各种CRUD扩展的简单使用

    一.创建springboot项目 引入pom文件依赖 <dependency><groupId>org.springframework.boot</groupId> ...

  3. Java分享笔记:自定义枚举类 使用enum关键字定义枚举类

    在JDK1.5之前没有enum关键字,如果想使用枚举类,程序员需要根据Java语言的规则自行设计.从JDK1.5开始,Java语言添加了enum关键字,可以通过该关键字方便地定义枚举类.这种枚举类有自 ...

  4. Java 自定义枚举类型

    1.定义枚举 public abstract class Enum {private final String m_name;private final String m_title;private ...

  5. 枚举类——概述、常用方法、自定义枚举类、Enum创建枚举类

    一.枚举类的概述 1.枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类 3.如果枚举类中只一个对象,则可以作为单例模式的实现方式. 二.枚举类 ...

  6. 【java】自定义枚举类(不使用enum的新特性)1.5版本前

    package meiju;/** 自定义枚举类 (不使用enum的新特性)1.5版本前.*/ public class TestSeason {public static void main(Str ...

  7. java如何映射mysql枚举_java中自定义枚举enum映射到mysql数据库字段处理器handler

    mybatis中默认的处理枚举类型的handler有 如果要处理一些特殊的情况下字段内容字段的转换,需要自定义处理器,比如如下例子要处理数据库中默认字段值为""空字符串的问题 im ...

  8. Java基础学习——Java网络编程(三)自定义枚举类、枚举类的常用方法、枚举类实现接口、枚举类的实际应用

    一.什么是枚举 枚举法:一枚一枚的列举出来,列举的元素是有限的.确定的. 例如:星期(一.二.三.四.五.六.日).性别(男.女).季节(春.夏.秋.冬) 在Java中的关键字为enum 二.枚举类的 ...

  9. querystring java_java – 自定义枚举的QueryStringBindable

    我已经定义了一个实现QueryStringBindable的枚举类型Format.我想我已经正确实现了它,但在我的路由文件中,我不能将我的类型指定为路由参数,因为编译器找不到它,我不知道如何将它导入路 ...

最新文章

  1. 22. 一个题来探查对 字符串,指针,数组三方面的关联使用方面的概念是否清晰,分析下面三个printf打印什么?...
  2. matlab算法时间复杂度,关于降低算法时间复杂度问题的探讨和总结
  3. linux中probe函数传递参数的寻找(下)
  4. 一堂如何提高代码质量的培训课【转】
  5. 2020年度盘点出炉!技术好文一口气读完
  6. 数学狂想曲(十二)——熵(2), 阴影面积, 肺炎版《黄冈密卷》
  7. win7系统丢失文件的处理方法
  8. html中logo不变形,CSS3如何实现LOGO中的文本变形动画
  9. 最短路最小生成树水题
  10. mybatis使用详解
  11. Android 自定义控件之---3D画廊
  12. 杭州电子科技大学2020计算机研究生考研经验贴
  13. 以太网是什么拓扑结构
  14. 小米10pro和小米10的区别
  15. 嵌入式系统测试平台——ETest
  16. 苹果xr电池容量_2019销量最高的苹果手机,不是iPhone11,更不是iPhone8
  17. 技嘉B560M VCCIO2电压设计缺陷
  18. iPhone 11 Pro Max首发评测:锤爆友商的三摄用着还真香
  19. 2020小迪安全第八天笔记-(信息收集)架构,搭建,WAF 等
  20. 基于Kafka+ELK搭建海量日志平台

热门文章

  1. oracle12178错误,Oracle学习笔记_20080522:Index FS vs Index FFS
  2. 链表应用 多项式相加
  3. memcached 使用 java_使用Java java_memcached client的陷阱
  4. 基于Java springboot+vue+redis前后端分离家具商城平台系统设计和实现
  5. 基于jsp+mysql的JSP在线水果销售商城系统设计实现
  6. layout布局_安卓最常见的几种布局
  7. c++输入错误重新输入_C程序-根据时长和时薪计算工资1.3(解决输入非数字选项退出的bug)...
  8. SQLServer查找已知数相邻前后数
  9. c语言趣味程序设计编程100例精解,c趣味编程100例
  10. MATLAB基础教程(6)——使用matlab求解线性方程组