1、在mybatis中双引号(")和单引号(’)的区别,eg如下:
<if test='sid!=null and sid!="0"'> and sid = #{sid}</if>
<if test="sid!=null and sid!='0'"> and sid = #{sid}</if>
在这两行代码中 sid!=“0” 比较返回true,sid!='0’返回false。
原因是因为mybatis映射文件,是使用的ognl表达式,ognl是java语言(强类型语言),会把‘X’解析成字符,而不是字符串。
如果要用用双引号的来包含但引号,怎需要使用‘string’.toString()来转成字符串类型,在进行比较,如下所示:
<if test="sid!=null and sid!='0'.toString()"> and sid = #{sid}</if>