mybatis if test判断BigDecimal遇到的坑及解决

 更新时间:2023年03月30日 09:30:52   作者:卡卡的喵  
这篇文章主要介绍了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当成了空字符串。

造成这样错误的原因应该是复制了之前的代码,而之前的代码是判断字符类型是否为空。

mybatis if test 报错,无效

除却.toString能够对空字符和数值操作,来避免类型对比错误问题外

还可能在语法上报错,

先上图(这里说SQL格式有问题)

源码是这样的

(正常在SQL工具中,“SELECT * FROM `product` where”查询语句是没问题的)

但在这里会报错。

所以小改一下! 

就解决了!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringSecurity实现登陆认证并返回token方式

    SpringSecurity实现登陆认证并返回token方式

    这篇文章主要介绍了SpringSecurity实现登陆认证并返回token方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Maven设置使用自定义的jar包到自己本地仓库

    Maven设置使用自定义的jar包到自己本地仓库

    今天小编就为大家分享一篇关于Maven设置使用自定义的jar包到自己本地仓库的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 在Mybatis中association标签多层嵌套的问题

    在Mybatis中association标签多层嵌套的问题

    这篇文章主要介绍了在Mybatis中association标签多层嵌套的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java反射 JavaBean对象自动生成插入,更新,删除,查询sql语句操作

    Java反射 JavaBean对象自动生成插入,更新,删除,查询sql语句操作

    这篇文章主要介绍了Java反射 JavaBean对象自动生成插入,更新,删除,查询sql语句操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 在SpringBoot中,如何使用Netty实现远程调用方法总结

    在SpringBoot中,如何使用Netty实现远程调用方法总结

    我们在进行网络连接的时候,建立套接字连接是一个非常消耗性能的事情,特别是在分布式的情况下,用线程池去保持多个客户端连接,是一种非常消耗线程的行为.那么我们该通过什么技术去解决上述的问题呢,那么就不得不提一个网络连接的利器——Netty,需要的朋友可以参考下
    2021-06-06
  • JAVA对象和字节数组互转操作

    JAVA对象和字节数组互转操作

    这篇文章主要介绍了JAVA对象和字节数组互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Java 高并发二:多线程基础详细介绍

    Java 高并发二:多线程基础详细介绍

    本文主要介绍Java 高并发多线程的知识,这里整理详细的资料来解释线程的知识,有需要的学习高并发的朋友可以参考下
    2016-09-09
  • Spring MVC 中 短信验证码功能的实现方法

    Spring MVC 中 短信验证码功能的实现方法

    短信验证功能在各个网站应用都非常广泛,那么在springmvc中如何实现短信验证码功能呢?今天小编抽时间给大家介绍下Spring MVC 中 短信验证码功能的实现方法,一起看看吧
    2016-09-09
  • jvm垃圾回收之GC调优工具分析详解

    jvm垃圾回收之GC调优工具分析详解

    这篇文章主要为大家介绍了jvm垃圾回收之GC调优工具的分析详解,在进行JVM GC性能调优之前,需要使用某些工具获取到当前应用的状态信息
    2022-01-01
  • Java 中的字符串常量池详解

    Java 中的字符串常量池详解

    本文主要介绍Java中的字符串常量池的知识,这里整理了相关资料及简单示例代码帮助大家学习理解此部分的知识,有需要的小伙伴可以参考下
    2016-09-09

最新评论