Ssm 中如何使用枚举类型

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值