您好,登錄后才能下訂單哦!
這篇“mybatis if test判斷BigDecimal遇到的坑及解決方法是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“mybatis if test判斷BigDecimal遇到的坑及解決方法是什么”文章吧。
<update id="test" parameterType="cn.test.Demo"> update test <trim prefix="set" suffixOverrides=","> <if test="bigDecimalValue != null and bigDecimalValue != ''"> bigDecimal_value = #{bigDecimalValue}, </if> </trim> WHERE id = #{id} </update>
以上語句變量bigDecimalValue是BigDecimal類型的,傳入的值是0,
但打印出來的語句是
update test WHERE id = ?
竟然沒有set變量,導致一直報sql錯誤的異常。
后來才發現,如果要判斷BigDecimal類型是否為空,只要判斷是否為null就可以了,不要判斷是否為空字符串,系統會自動把0當成了空字符串。
造成這樣錯誤的原因應該是復制了之前的代碼,而之前的代碼是判斷字符類型是否為空。
除卻.toString能夠對空字符和數值操作,來避免類型對比錯誤問題外
還可能在語法上報錯,
(正常在SQL工具中,“SELECT * FROM `product` where”查詢語句是沒問題的)
但在這里會報錯。
所以小改一下!
就解決了!
以上就是關于“mybatis if test判斷BigDecimal遇到的坑及解決方法是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。