mybatis中進行條件判斷字符串時這樣寫是不對的,雖然此寫法不會直接引起異常但會造成無法判斷從而忽略該條件表達式
<if test="userStatus!=null and userStatus!= 'XXX'">
需要將單雙引號交換一下位置,正確寫法如下:
<if test='userStatus!=null and userStatus!= "XXX"'>
或者
<if test="userStatus!=null and yanan != 'userStatus'.toString()">
因為mybatis映射文件,是使用的ognl表達式,ognl是java語言(強類型語言),會把‘X’解析成字符,而不是字符串。
因此,進行條件判斷時也可使用java.lang.String的方法,如下:
<if test='userStatus.indexOf(",") != -1'>
--自己測試過(以下語句寫法會造成這個判斷條件根本不會加上)---重要
<if test="userStatus =='1'and userStatus == '2' ">
AND Status = #{userStatus}
</if>