对于mybatis if标签对 byte int 等非字符串和字符串判断的问题
作者:互联网
1.对于 byte int等pojo中属性判断的时候
注意不可以是这种情况,newsNature 如果是0就会导致无法更新
<if test="newsNature != null and newsNature != ''">
and news_nature = #{newsNature}
</if>
必须修改成以下判断
<if test="newsType != null">
and news_type = #{newsType}
</if>
2. 单个的字符要写到双引号里面才行,改为<if test='takeWay == "1"'>或者改为<if test="takeWay == '1'.toString() ">
原因是:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,’1’会被解析成字符,Java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。
总结下使用方法:单个的字符要写到双引号里面或者使用.toString()才行!
标签:字符,int,mybatis,OGNL,newsNature,字符串,解析 来源: https://blog.51cto.com/u_13270164/3035982