记录一下Mybatis中的if标签使用时遇到的问题
- 前言
- 一、if标签遇到的问题
- 二、if标签中""和''的问题
- 字符串等于条件的两种写法:
- 三 、总结
前言
今天在项目中进行查询时使用了if标签,遇到了问题:
开始时拉过代码来的时候是这样的
<if test="posType !=null and posType !='' posType!='0'">
提示:以下是本篇文章正文内容,下面案例可供参考
一、if标签遇到的问题
当使用这个标签进行查询时,我发先无论传什么值,都会进入if标签内
<if test="posType !=null and posType !='' posType!='0'">
后来,因为前端posType的值是0,2,3,不存在没有null的情况,所以我就把前面判断null和空值判断去掉了
<if test="posType!='0'">
发现这时还是不行,于是我在论坛里找了找,发现了下面的问题
二、if标签中""和’'的问题
字符串等于条件的两种写法:
如果你外层使用""双引号,内层用''单引号
内层单引号必须使用toString()进行字符串的转换
<if test="posType!='0'.toString()">
如果你外层使用''单引号,内层用""双引号
<if test='posType!="0"'>
这样总算是可以完成了
三 、总结
如果if标签中不需要进行控制判断,那么直接进行值判断只需要注意二里面的问题
如果需要进行控制判断,我的建议是:
<if test="posType !=null and posType !=''">
<if test='posType != "0"'>
</if>
</if>
如果在一个标签里先进行了控制判断,那么后面的值条件判断就会无效