SSM中如何在JAVA中使用枚举
Ssm 中如何使用枚举类型
1、先定义枚举类型
2、查询 Mapper.Xml 的查询中不能使用resultType 方式返回数据,必须使用resultMap 方式,需要制定枚举类型的转换器
<resultMap type="Actor" id="actorMapper">
<!-- 数据库保存的是int类型 枚举数值在枚举列表中出现索引序号 -->
<result column="region1"
property=“region1” typeHandler=“org.apache.ibatis.type.EnumOrdinalTypeHandler”/>
<result column="gender1" property="gender1" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
</resultMap>
3、插入Mapper.Xml
Gender
和 Region 是自定义枚举类型。
// 插入的内容字符串 数据库里边的类型要求是varchar
#{gender1,jdbcType=VARCHAR,javaType=Gender,
typeHandler=org.apache.ibatis.type.EnumTypeHandler},
// 插入的索引数值
数据库里边的类型要求是int
#{region1,jdbcType=INTEGER,javaType=Region,typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler}
4、如何从controller中接收枚举数值
不直接接受枚举值,直接传递相应数字或者字符串,把字符串和数字转换成相应的枚举类型即可。
字符串转换成枚举:
// Gender 就是自定义的枚举类型
// gender2 就是页面传递过来的字符串值
actor.setGender1(Enum.valueOf(Gender.class,gender2));
//
对于页面传递的数值的情况,需要在对应的自定义枚举中实现一个函数。
public static Region valueOf(int ordinal) {
if (ordinal < 0 || ordinal >= values().length) {
//throw new IndexOutOfBoundsException("Invalid
ordinal");
return null;
}
return values()[ordinal];
}
再根据数值专成相应的枚举类型变量:
// Region 就是自定义的那个枚举类型, region2
就是一个数字。
actor.setRegion1(Region.valueOf(region2));
Ssm 中如何使用枚举类型
1、先定义枚举类型
2、查询 Mapper.Xml 的查询中不能使用resultType 方式返回数据,必须使用resultMap 方式,需要制定枚举类型的转换器
<resultMap type="Actor" id="actorMapper">
<!-- 数据库保存的是int类型 枚举数值在枚举列表中出现索引序号 -->
<result column="region1"
property=“region1” typeHandler=“org.apache.ibatis.type.EnumOrdinalTypeHandler”/>
<result column="gender1" property="gender1" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
</resultMap>
3、插入Mapper.Xml
Gender
和 Region 是自定义枚举类型。
// 插入的内容字符串 数据库里边的类型要求是varchar
#{gender1,jdbcType=VARCHAR,javaType=Gender,
typeHandler=org.apache.ibatis.type.EnumTypeHandler},
// 插入的索引数值
数据库里边的类型要求是int
#{region1,jdbcType=INTEGER,javaType=Region,typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler}
4、如何从controller中接收枚举数值
不直接接受枚举值,直接传递相应数字或者字符串,把字符串和数字转换成相应的枚举类型即可。
字符串转换成枚举:
// Gender 就是自定义的枚举类型
// gender2 就是页面传递过来的字符串值
actor.setGender1(Enum.valueOf(Gender.class,gender2));
//
对于页面传递的数值的情况,需要在对应的自定义枚举中实现一个函数。
public static Region valueOf(int ordinal) {
if (ordinal < 0 || ordinal >= values().length) {
//throw new IndexOutOfBoundsException("Invalid
ordinal");
return null;
}
return values()[ordinal];
}
再根据数值专成相应的枚举类型变量:
// Region 就是自定义的那个枚举类型, region2
就是一个数字。
actor.setRegion1(Region.valueOf(region2));