首页 > 其他 > 详细

mybatis if 标签 判断单个字符的不生效

时间:2018-08-28 10:57:40      阅读:209      评论:0      收藏:0      [点我收藏+]

需求:

<if test="carrier != null and carrier !=‘‘ and carrier !=‘0‘">
    AND CARRIER = #{carrier}

</if>

要在carrier字段不为null,‘‘,和"0"的时候增加以上条件,但是以上当carrier等于"0"时,并不生效。

 

 

 

转载地址:https://blog.csdn.net/hamov/article/details/78417021

  原因:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,‘0‘会被解析成字符,java是强类型的,char 和 一个string 会导致不等,

所以if标签中的sql不会被解析。

解决办法:

1----换成双引号

 

<if test=‘carrier != null and carrier !="" and carrier !="0"‘>
    AND CARRIER = #{carrier}

</if>

2----加toSting()

 

<if test="carrier != null and carrier !=‘‘ and carrier !=‘0‘.toString()">
    AND CARRIER = #{carrier}
</if>

总结:单个的字符要写到双引号里面或者使用.toString()才行!

mybatis if 标签 判断单个字符的不生效

原文:https://www.cnblogs.com/CatWorld/p/9546664.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!