無論你用的什麼類型的變量,只要變量的值是字符類型就用「==」java
在mybatis中若是<if>標籤用一個「=」判斷左右兩邊的值是否相等,則mybatis會把「=」兩邊的值自動拆箱成基礎數據類型(Number類型)mybatis
參數:String queryKwd = "a";app
<select id="getFactoryInfoList" resultMap="BaseResultMap" > select * from PM_FACTORY_INFO where DEL_FLAG='0' <if test="queryKwd == 'a'"><!--正確寫法--> and 1=1 </if> <if test="queryKwd = 'a'"><!--錯誤寫法: 字符類型不能用一個「=」判斷是否相等,會報錯:Caused by: java.lang.NumberFormatException: For input string: "a" --> and 2=2 </if></select><-java 框架平臺 www.1b23.com ->
一、無論你用的什麼類型的變量,只要變量的值是基礎數值類型就用「=」框架
二、當傳參的類型是Object的狀況下,當Object的值爲單個的大小寫字母或一些特殊字符串會被轉換成ASCII碼,此時也用」=「ide
一、在mybatis中若是<if>標籤用一個「=」判斷左右兩邊的值是否相等,則mybatis會把「=」兩邊的值自動拆箱成基礎數據類型(Number類型)spa
二、當用Object爲參數變量,且值是以下單個大小寫字母或字符串,則會被轉換成相應十進制數字(ASCII碼錶只截取部分,更多能夠本身去網上查找)orm
示例以下:字符串
參數:String queryKwd = "1";get
<select id="getFactoryInfoList" resultMap="BaseResultMap" > select * from PM_FACTORY_INFO where DEL_FLAG='0' <if test="queryKwd == '1'"><!--錯誤寫法,雖然不報錯,可是永遠不會成立--> and 1=1 </if> <if test="queryKwd = '1'"><!--正確寫法--> and 2=2 </if></select><-java 框架平臺 www.1b23.com ->
在使用mybatis時,須要特別注意,當使用的參數無論是String/Object/int等類型的變量,咱們須要清楚業務變量的值會是字符型仍是數值型input
只要變量值是字符型就用「==」!!!
只要變量值是數值型就用「=」!!!
只要變量值是單個大寫或小寫字母就用「=」!!!