1. 程式人生 > >MYBATIS中if test判斷中的注意事項

MYBATIS中if test判斷中的注意事項

mybatis中有這樣一個SQL判斷,

<if test="status != null and status !='' ">
and a.STATUS = #{status,jdbcType=SMALLINT}
</if>

status是一個Byte型別物件,當status = 1時判斷成立,status=0 就不成立,按理說都應該成立的。自己試著把status !=’’ 去掉之後就都成立了。後來網上查了好久,才明白mybatis會把number型別的0當成false,非0為true,類似於JavaScript中0!=''結果為false,從而導致=0的時候判斷總是不成立。
其實只有String型別才需要判斷!=''

,number型別根本不需要。
詳細的可以看看這個大佬寫的:http://jackyrong.iteye.com/blog/2377596