温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Mybatis条件if test怎么使用枚举值

发布时间:2022-06-07 09:18:35 来源:亿速云 阅读:627 作者:iii 栏目:开发技术

本篇内容主要讲解“Mybatis条件if test怎么使用枚举值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis条件if test怎么使用枚举值”吧!

Mybatis条件if test使用枚举值

1.正确

package com.weather.weatherexpert.common.utils; /**  * <p>Title: </p>  * <p>Description: </p>  *  * @Author   * @CreateTime   */ public enum City {     XINZHOU(100002,"忻州"),     DATONG(100003,"大同"),     TAIYUAN(100001,"太原");       private final Integer code;     private final String name;       City(Integer value, String desc) {         this.code = value;         this.name = desc;     }       public Integer getCode() {         return code;     }       public String getName() {         return name;     } }

xml:

<!--<if test="cityName == @com.weather.weatherexpert.common.utils.City.XINZHOU@getName">&lt;!&ndash;wrong,java.lang.ClassNotFoundException: Unable to resolve class: com.weather.weatherexpert.common.utils.City.XINZHOU&ndash;&gt;--> <!--<if test="cityName == @com.weather.weatherexpert.common.utils.City@XINZHOU@getName">&lt;!&ndash;wrong,[org.apache.ibatis.ognl.ParseException: Encountered " "@" "@ "" at line 1, column 65.&ndash;&gt;--> <if test="cityName == @com.weather.weatherexpert.common.utils.City@XINZHOU.getName"><!--right-->	area_table </if>   where 1=1 <if test="cityName == @com.weather.weatherexpert.common.utils.City@XINZHOU.getName"><!--right-->	and city_name=#{cityName} </if>

Mybatis条件if test怎么使用枚举值

2.错误

package com.weather.weatherexpert.common.utils; /**  * <p>Title: </p>  * <p>Description: </p>  *  * @Author  * @CreateTime  */ public class CityClass {     public static enum CityEnum {           XINZHOU(100002, "忻州"),         DATONG(100003, "大同"),         TAIYUAN(100001, "太原");           private final Integer code;         private final String name;           CityEnum(Integer value, String desc) {             this.code = value;             this.name = desc;         }           public Integer getCode() {             return code;         }           public String getName() {             return name;         }     } }

xml:

/*        Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression         'cityName == @com.weather.weatherexpert.common.utils.CityClass@CityEnum.XINZHOU.getName'. Cause: org.apache.ibatis.ognl.OgnlException:         Could not get static field CityEnum from class com.weather.weatherexpert.common.utils.CityClass [java.lang.NoSuchFieldException: CityEnum]*/         <if test="cityName == @com.weather.weatherexpert.common.utils.CityClass@CityEnum.XINZHOU.getName"><!--wrong-->             area_table         </if>

可见,直接定义的枚举类可以正常使用,在类中定义的枚举类这样使用会报错,可能方法还没有找到。

如下正确:

 <if test="cityName == @com.a.b.c.CityClass$CityEnum@XINZHOU.getName"><!--right-->   name = #{username}  </if>

Mybatis里使用枚举Enum判断

<if test="dtEnum == @com.xxx.xxx.TestTypeEnum@HOUR">   DATE_FORMAT(TM,'%Y-%m-%d %H') as keyStr, </if>

TestTypeEnum定义如下

  • HOUR("hour"),

  • DAY("day"),

  • MONTH("month"),

  • YEAR("year");

到此,相信大家对“Mybatis条件if test怎么使用枚举值”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI