其他分享
首页 > 其他分享> > 对于mybatis if标签对 byte int 等非字符串和字符串判断的问题

对于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