之前用都是判断参数是否为空之类的,今天要判断等于一个字符,直接写等于号反而会没有执行直接跳过,后来上网查阅了资料才知道
原因是:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,’1’会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。
所以单个的字符要写到双引号里面或者使用.toString()才行:
<if test="runType=='1'.toString()||runType=='2'.toString()"> and a.run_type=#{runType} </if>
目前只用到这里,后续有新用法继续添加
标签:字符,OGNL,判断,test,mybatis,解析 From: https://www.cnblogs.com/ssbxfsrm/p/16939146.html