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變量,導(dǎo)致一直報sql錯誤的異常。
后來才發(fā)現(xiàn),如果要判斷BigDecimal類型是否為空,只要判斷是否為null就可以了,不要判斷是否為空字符串,系統(tǒng)會自動把0當(dāng)成了空字符串。
造成這樣錯誤的原因應(yīng)該是復(fù)制了之前的代碼,而之前的代碼是判斷字符類型是否為空。
mybatis if test 報錯,無效
除卻.toString能夠?qū)兆址蛿?shù)值操作,來避免類型對比錯誤問題外
還可能在語法上報錯,
先上圖(這里說SQL格式有問題)

源碼是這樣的
(正常在SQL工具中,“SELECT * FROM `product` where”查詢語句是沒問題的)

但在這里會報錯。
所以小改一下!

就解決了!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringSecurity實現(xiàn)登陸認(rèn)證并返回token方式
這篇文章主要介紹了SpringSecurity實現(xiàn)登陸認(rèn)證并返回token方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
在Mybatis中association標(biāo)簽多層嵌套的問題
這篇文章主要介紹了在Mybatis中association標(biāo)簽多層嵌套的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Java反射 JavaBean對象自動生成插入,更新,刪除,查詢sql語句操作
這篇文章主要介紹了Java反射 JavaBean對象自動生成插入,更新,刪除,查詢sql語句操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
在SpringBoot中,如何使用Netty實現(xiàn)遠(yuǎn)程調(diào)用方法總結(jié)
我們在進(jìn)行網(wǎng)絡(luò)連接的時候,建立套接字連接是一個非常消耗性能的事情,特別是在分布式的情況下,用線程池去保持多個客戶端連接,是一種非常消耗線程的行為.那么我們該通過什么技術(shù)去解決上述的問題呢,那么就不得不提一個網(wǎng)絡(luò)連接的利器——Netty,需要的朋友可以參考下2021-06-06
JAVA對象和字節(jié)數(shù)組互轉(zhuǎn)操作
這篇文章主要介紹了JAVA對象和字節(jié)數(shù)組互轉(zhuǎn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Java 高并發(fā)二:多線程基礎(chǔ)詳細(xì)介紹
本文主要介紹Java 高并發(fā)多線程的知識,這里整理詳細(xì)的資料來解釋線程的知識,有需要的學(xué)習(xí)高并發(fā)的朋友可以參考下2016-09-09
Spring MVC 中 短信驗證碼功能的實現(xiàn)方法
短信驗證功能在各個網(wǎng)站應(yīng)用都非常廣泛,那么在springmvc中如何實現(xiàn)短信驗證碼功能呢?今天小編抽時間給大家介紹下Spring MVC 中 短信驗證碼功能的實現(xiàn)方法,一起看看吧2016-09-09

