Mybatis中的OGNL使用总结

Mybatis中的OGNL使用总结

Mybatis中常用的OGNL表达式有以下:

e1 or e2

e1 and e2

e1 == e2,e1 eq e2

e1 != e2,e1 neq e2

e1 lt e2:小于

e1 lte e2:小于等于,其他gt(大于),gte(大于等于)

e1 in e2

e1 not in e2

e1 + e2,e1 * e2,e1/e2,e1 - e2,e1%e2

!e,not e:非,求反

e.method(args)调用对象方法

e.property对象属性值

e1[ e2 ]按索引取值,List,数组和Map

@class@method(args)调用类的静态方法

@class@field调用类的静态字段值

在一定意义上说,mybatis中的动态sql也是基于OGNL表达式的。其中常用的元素有如下几种:

    if
    choose(when,otherwise)
    trim
    where
    set
    foreach

OGNL在mybatis中的应用,主要有两种:

OGNL的调用静态方法的示例:

  

静态方法如下:

public static boolean isSolve(Object o,String soleState){  
    if(o == null)  
        return false;  
    String str = null;  
    if(o instanceof String[]){  
        String[]objects = (String[])o;  
        str = objects[0];  
    }else if(o instanceof Character){  
        Character c = (Character) o;  
        str =  Character.toString(c);  
    }  
        if(StringUtils.equals(str, soleState))  
            return true;  
    return false;  
      
}  

如果值为0,则order by questionTime desc 根据字段questionTime排序。
如果值为1,则order by answerTime desc根据字段answerTime排序。


Mybatis中的OGNL使用总结_第1张图片
Mybatis中的OGNL表达式(一)
Mybatis中的OGNL使用总结_第2张图片
Mybatis中的OGNL表达式(二)

你可能感兴趣的:(Mybatis中的OGNL使用总结)