| New file | 
 |  |  | 
 |  |  | package com.dy.common.mybatis.envm; | 
 |  |  |  | 
 |  |  | import cn.hutool.core.lang.Assert; | 
 |  |  | import org.apache.ibatis.type.BaseTypeHandler; | 
 |  |  | import org.apache.ibatis.type.JdbcType; | 
 |  |  |  | 
 |  |  | import java.sql.CallableStatement; | 
 |  |  | import java.sql.PreparedStatement; | 
 |  |  | import java.sql.ResultSet; | 
 |  |  | import java.sql.SQLException; | 
 |  |  |  | 
 |  |  | public class EnumCodeTypeHandler<E extends Enum<E> & IEnum> extends BaseTypeHandler<E>{ | 
 |  |  |  | 
 |  |  |     private final Class<E> type; | 
 |  |  |  | 
 |  |  |     public EnumCodeTypeHandler(Class<E> type) { | 
 |  |  |         Assert.notNull(type , "type argument can not be null"); | 
 |  |  |         this.type = type; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void setNonNullParameter(PreparedStatement preparedStatement, int i, E e, JdbcType jdbcType) throws SQLException { | 
 |  |  |         preparedStatement.setByte(i , e.getCode()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public E getNullableResult(ResultSet resultSet, String s) throws SQLException { | 
 |  |  |         Byte code = resultSet.getByte(s) ; | 
 |  |  |         return resultSet.wasNull() ? null : EnumUtils.codeOf(this.type , code); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public E getNullableResult(ResultSet resultSet, int i) throws SQLException { | 
 |  |  |         Byte code = resultSet.getByte(i) ; | 
 |  |  |         return resultSet.wasNull() ? null : EnumUtils.codeOf(this.type , code); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public E getNullableResult(CallableStatement callableStatement, int i) throws SQLException { | 
 |  |  |         Byte code = callableStatement.getByte(i); | 
 |  |  |         return callableStatement.wasNull() ? null : EnumUtils.codeOf(this.type , code); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |