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錯誤的異常。
后來才發(fā)現(xiàn),如果要判斷BigDecimal類型是否為空,只要判斷是否為null就可以了,不要判斷是否為空字符串,系統(tǒng)會自動把0當成了空字符串。
造成這樣錯誤的原因應(yīng)該是復制了之前的代碼,而之前的代碼是判斷字符類型是否為空。
mybatis if test 報錯,無效
除卻.toString能夠?qū)兆址蛿?shù)值操作,來避免類型對比錯誤問題外
還可能在語法上報錯,
先上圖(這里說SQL格式有問題)
源碼是這樣的
(正常在SQL工具中,“SELECT * FROM `product` where”查詢語句是沒問題的)
但在這里會報錯。
所以小改一下!
就解決了!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java ThreadPoolExecutor線程池拒絕策略避坑
這篇文章主要為大家介紹了java ThreadPoolExecutor拒絕策略避坑踩坑示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07詳解Http請求中Content-Type講解以及在Spring MVC中的應(yīng)用
這篇文章主要介紹了Http請求中Content-Type講解以及在Spring MVC中的應(yīng)用的相關(guān)資料,需要的朋友可以參考下2017-02-02細數(shù)Java接口的概念、分類及與抽象類的區(qū)別
下面小編就為大家?guī)硪黄殧?shù)Java接口的概念、分類及與抽象類的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11