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>
以上語(yǔ)句變量bigDecimalValue是BigDecimal類型的,傳入的值是0,
但打印出來(lái)的語(yǔ)句是
update test ?WHERE id = ??
竟然沒(méi)有set變量,導(dǎo)致一直報(bào)sql錯(cuò)誤的異常。
后來(lái)才發(fā)現(xiàn),如果要判斷BigDecimal類型是否為空,只要判斷是否為null就可以了,不要判斷是否為空字符串,系統(tǒng)會(huì)自動(dòng)把0當(dāng)成了空字符串。
造成這樣錯(cuò)誤的原因應(yīng)該是復(fù)制了之前的代碼,而之前的代碼是判斷字符類型是否為空。
mybatis if test 報(bào)錯(cuò),無(wú)效
除卻.toString能夠?qū)兆址蛿?shù)值操作,來(lái)避免類型對(duì)比錯(cuò)誤問(wèn)題外
還可能在語(yǔ)法上報(bào)錯(cuò),
先上圖(這里說(shuō)SQL格式有問(wèn)題)
源碼是這樣的
(正常在SQL工具中,“SELECT * FROM `product` where”查詢語(yǔ)句是沒(méi)問(wèn)題的)
但在這里會(huì)報(bào)錯(cuò)。
所以小改一下!
就解決了!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
@Scheduled定時(shí)器使用注意事項(xiàng)及說(shuō)明
這篇文章主要介紹了@Scheduled定時(shí)器使用注意事項(xiàng)及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08java ThreadPoolExecutor線程池拒絕策略避坑
這篇文章主要為大家介紹了java ThreadPoolExecutor拒絕策略避坑踩坑示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Spring中的BeanDefinition注冊(cè)流程詳解
這篇文章主要介紹了Spring中的BeanDefinition注冊(cè)流程詳解, NamespaceHandler簡(jiǎn)單來(lái)說(shuō)就是命名空間處理器,Spring為了開(kāi)放性提供了NamespaceHandler機(jī)制,這樣我們就可以根據(jù)需求自己來(lái)處理我們?cè)O(shè)置的標(biāo)簽元素,需要的朋友可以參考下2023-12-12詳解Http請(qǐng)求中Content-Type講解以及在Spring MVC中的應(yīng)用
這篇文章主要介紹了Http請(qǐng)求中Content-Type講解以及在Spring MVC中的應(yīng)用的相關(guān)資料,需要的朋友可以參考下2017-02-02細(xì)數(shù)Java接口的概念、分類及與抽象類的區(qū)別
下面小編就為大家?guī)?lái)一篇細(xì)數(shù)Java接口的概念、分類及與抽象類的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11