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); |
| | | } |
| | | |
| | | } |