81,122
社区成员




/**
*
* 枚举类型复写一个valueOf方法,int方法的valueof
* */
public interface IEnum<Enum> {
public Enum valueOf(int value);
}
/**
* 处理自己的枚举类型性的TypeHandler
*
* */
public class MyEnumTypeHandler<E extends IEnum<E>> implements TypeHandler {
public void setParameter(PreparedStatement ps, int i, Object parameter,
JdbcType jdbcType) throws SQLException {
Enum<?> en=(Enum<?>)parameter;
if (jdbcType == null) {
ps.setInt(i, en.ordinal());
} else {
ps.setObject(i, en.ordinal(), jdbcType.TYPE_CODE);
}
}
public E getResult(ResultSet rs, String columnName)
throws SQLException {
return type.valueOf(rs.getInt(columnName));
}
public E getResult(CallableStatement cs, int columnIndex)
throws SQLException {
return type.valueOf(cs.getInt(columnIndex));
}
}
<typeHandlers>
<typeHandler javaType="java.lang.Enum" jdbcType="INTEGER"
handler="cc.mypackage.util.MyEnumTypeHandler" />
</typeHandlers>