美文网首页
mybatis判断使用枚举值

mybatis判断使用枚举值

作者: 毛仑上保罗先生 | 来源:发表于2018-03-21 19:25 被阅读0次

    其实有人说这样有点多余了, 明明可以直接把值写死啊,比如:

    <select id="getCityCodes">
      <if test="isInternational==0"></if>
    </select
    

    直接把值写成0就好了, 是的, 确实可以这样,但是这样的话谁会知道0是什么呢? 当然可以去文档或者别的地方查也许能得到答案, 但是基于个人在以前项目中出现过把值写死连文档都找不到注释没有的情况, 所以现在个人比较倾向于把值写死的情况都用枚举来代替,

    /**
     * 是否国际枚举
     */
    public enum InternationalEnumUtil {
        ALL(0, "全部"), YES(1, "是"), NO(2, "否");
        private int v;
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getV() {
            return v;
        }
    
        public void setV(int v) {
            this.v = v;
        }
    
        private InternationalEnumUtil(int v,String name){
            this.v=v;
            this.name=name;
        }
        public static boolean isEquals(String enumName, int code) {
            return InternationalEnumUtil.valueOf(enumName).getV() == code;
        }
    }
    
    

    在枚举类的最下面我自己写了一个isEquals方法,然后在mybatis的xml中就调用这个类

    <if test="not @xxxClass.InternationalEnumUtil@isEquals('ALL',isInternational)">
    </if>
    

    这样就能直接判断了 ,not可以用 ! 代替 其效果和下列代码一样

    <if test="isInternational !=0">
    </if>
    

    这样确实是麻烦些, 但是对于项目维护个人认为意义极大

    相关文章

      网友评论

          本文标题:mybatis判断使用枚举值

          本文链接:https://www.haomeiwen.com/subject/qaknqftx.html