myBatis的bind的标签,一般的用法都是
<if test="name!= null and name!= '' ">
<bind name="userLike" value=" '%' + name+ '%' "/>
and user_name like #{userLike}
</if>
但是,当bind和OGNL结合使用时,用处还是大大的
ognl的用法借用这位的文章 https://www.cnblogs.com/wgj-master/p/7891289.html
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调用类的静态字段值
例:
<bind name="xxx" value="@com.xx.mybaits.Abc@aa(item, 'a','b')"/>
这里xxx为bind的名字,item为mapper传递的参数,后面为传的字符串
通过bind,我们可以通过java代码设置自定义的值,也可以进行一些判断,如果不符合判断,抛出异常,还是很灵活的