mybatis 中的条件判断默认使用 ongl 表达式,具体参照:Apache
以下是我做的单元测试的结果,比较常用的Integer和String 类型的比较
<!-- set name="name" String
set val =2 Integer
<if test="name =='name'"> true
name = concat(name,'0'),
</if>
<if test='name =="name"'> true
name = concat(name,'1'),
</if>
<if test="name =='name'.toString()"> true
name = concat(name,'2'),
</if>
<if test='name =="name".toString()'> true
name = concat(name,'3'),
</if>
<if test="val ==2"> true
val_show = concat(val_show,'1'),
</if>
<if test="val =='2'"> false
val_show = concat(val_show,'2'),
</if>
<if test='@java.lang.String@valueOf(val)=="2"'> true
val_show = concat(val_show,'3'),
</if>
<if test="@java.lang.String@valueOf(val)=='2'"> false 猜测是 "2" 和 '' 类型不同?
val_show = concat(val_show,'4'),
</if>
<if test="@java.lang.String@valueOf(val)=='2'.toString()"> true
val_show = concat(val_show,'5'),
</if>
-->