1. 程式人生 > >mybatis中的0和null的問題

mybatis中的0和null的問題

<if test="status != null and status != ''">

and isDel=0  
</if>


當 private Integer status=0 時,會有什麼問題?

此時判斷返回的是false,不會執行if裡面的語句

分析如下:

1、status是Integer型別的。status!=' '的判斷就不合適 

2、在Mybatis的原始碼中,發現其在ExpressionEvaluator.java類的evaluateBoolean方法處返回了false,這個原始碼包的分析方式和原始碼分析 There is no getter for property named ‘*’ in ‘class java.lang.String有極大的相同之處。(百度的)

解決方法就是把“and status != ''"去掉就不會有問題了。