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ā)現,如果要判斷BigDecimal類型是否為空,只要判斷是否為null就可以了,不要判斷是否為空字符串,系統(tǒng)會自動把0當成了空字符串。
造成這樣錯誤的原因應該是復制了之前的代碼,而之前的代碼是判斷字符類型是否為空。
mybatis if test 報錯,無效
除卻.toString能夠對空字符和數值操作,來避免類型對比錯誤問題外
還可能在語法上報錯,
先上圖(這里說SQL格式有問題)

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

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

就解決了!
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringSecurity實現登陸認證并返回token方式
這篇文章主要介紹了SpringSecurity實現登陸認證并返回token方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
Java反射 JavaBean對象自動生成插入,更新,刪除,查詢sql語句操作
這篇文章主要介紹了Java反射 JavaBean對象自動生成插入,更新,刪除,查詢sql語句操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
在SpringBoot中,如何使用Netty實現遠程調用方法總結
我們在進行網絡連接的時候,建立套接字連接是一個非常消耗性能的事情,特別是在分布式的情況下,用線程池去保持多個客戶端連接,是一種非常消耗線程的行為.那么我們該通過什么技術去解決上述的問題呢,那么就不得不提一個網絡連接的利器——Netty,需要的朋友可以參考下2021-06-06

