All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yqjr.framework.datatype.EnumTypeHandler Maven / Gradle / Ivy

/**
 * 
 */
package com.yqjr.framework.datatype;

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.springframework.util.Assert;

import com.yqjr.framework.base.BaseEnum;

/**
 * ClassName: EnumTypeHandler 
* Description: Mybatis类型转换器,枚举
* Create By: admin
* Create Date: 2017年4月19日 下午1:14:32
* Modified By:
* Modified Date:
* Modified Content:
* Version: 1.0
*/ public class EnumTypeHandler & BaseEnum> extends BaseTypeHandler> { private Class clazz; public EnumTypeHandler(Class clazz) { Assert.notNull(clazz); this.clazz = clazz; } /* * (non-Javadoc) * * @see org.apache.ibatis.type.BaseTypeHandler#setNonNullParameter(java.sql. * PreparedStatement, int, java.lang.Object, * org.apache.ibatis.type.JdbcType) */ @Override public void setNonNullParameter(PreparedStatement ps, int i, BaseEnum parameter, JdbcType jdbcType) throws SQLException { ps.setInt(i, parameter.getValue()); } /* * (non-Javadoc) * * @see org.apache.ibatis.type.BaseTypeHandler#getNullableResult(java.sql. * ResultSet, java.lang.String) */ @Override public BaseEnum getNullableResult(ResultSet rs, String columnName) throws SQLException { return getEnum(rs.getInt(columnName)); } /* * (non-Javadoc) * * @see org.apache.ibatis.type.BaseTypeHandler#getNullableResult(java.sql. * ResultSet, int) */ @Override public BaseEnum getNullableResult(ResultSet rs, int columnIndex) throws SQLException { return getEnum(rs.getInt(columnIndex)); } /* * (non-Javadoc) * * @see org.apache.ibatis.type.BaseTypeHandler#getNullableResult(java.sql. * CallableStatement, int) */ @Override public BaseEnum getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { return getEnum(cs.getInt(columnIndex)); } /** * Description: 转换枚举值
* Create By: admin
* Create Data: 2017年4月19日 下午2:02:51 * * @param value */ private E getEnum(int value) { E[] enums = clazz.getEnumConstants(); for (E e : enums) { if (((BaseEnum) e).getValue() == value) { return e; } } throw new BizzException("非法的枚举值"); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy