您好,登錄后才能下訂單哦!
這篇“mybatis遇到Integer類型的參數時動態sql需要注意什么條件”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“mybatis遇到Integer類型的參數時動態sql需要注意什么條件”文章吧。
<if test="work_status !=null and work_status !='' "> and T.status=#{work_status,jdbcType=INTEGER} </if>
當work_status為0時,Mybatis會將0解析為了空字符串‘’,這樣if判斷就為false,如果想正確添加and后的查詢條件,應該改成
<if test="work_status !=null "> and T.status=#{work_status,jdbcType=INTEGER} </if>
有些屬性會被設置為Integer類型,比如status、sort等,在這里,使用Integer類型參數作為條件時,要注意一點:例如
<if test="bean.activitySort != null and bean.activitySort !="""> AND activity_sort = #{bean.activitySort,jdbcType=VARCHAR} </if>
這里對于bean.activitySort的判斷正常情況下如果activitySort是String類型,先判空,再判斷是否是空字符串,這樣是正常的,但是如果activitySort是Integer類型參數,那么使用時就需要注意,此處不能對activitySort進行空字符串的判斷,因為什么呢?
如果數據值為0,會將0解析為空字符串,這樣你傳入的參數就成為無效的了,所以正常使用Integer類型參數應該是下面這樣:
<if test="bean.activitySort != null"> AND activity_sort = #{bean.activitySort,jdbcType=VARCHAR} </if>
以上就是關于“mybatis遇到Integer類型的參數時動態sql需要注意什么條件”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。