mybatis中BigDecimal中的0存为null的坑及解决
更新时间:2024年10月28日 09:05:27 作者:yuyue_999
在使用MyBatis进行数据库操作时,若Java中属性类型为BigDecimal且值为0,插入数据库时可能会变为null,而不是0,这个问题可能是由于MyBatis在处理BigDecimal类型时的弱类型判断导致的,当BigDecimal变量与空字符串进行比较时,MyBatis可能将其视为null
mybatis中BigDecimal的0存为null的坑
问题点
做mybatis的插入和修改操作时,java中类型为Bigdicemal时,且值为0时,存入到数据库中的值为null,而不是0,其它的非0值正常
部分代码如下:

有问题的属性

可以看到是 Begdecimal 类型,对应查出来的日志如下:
可以看到,插入时存的是0, 但是入口后进行查询变成了null

最终修改方法
把 去掉bigDecimalNum !=''后正常

经过查询得出结论
mybatis中的类型判断是弱类型,而不是java中的强类型。
mybatis会自动把BigDecimal类型转为string,即0变为null啦
同样的,Integer 类型如果这样判断也会有这个问题
最后
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
HashMap原理的深入理解
这篇文章主要介绍了对HashMap原理的理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2019-04-04
Spring中读取配置文件的五种方式
在使用spring或springboot项目开发中,难免会涉及到读取配置文件的各种配置参数的情况,因为当项目的规模上去之后,在单个配置文件中维护所有的配置信息很难满足实际的需要,所以本文给大家介绍了Spring读取配置文件多种方式,需要的朋友可以参考下
2024-04-04
mybatis返回结果为Map问题
这篇文章主要介绍了mybatis返回结果为Map问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
2025-04-04
Java Redis Redisson配置教程详解
这篇文章主要介绍了Java Redis Redisson配置教程,包括Session共享配置及其他Redisson的Config配置方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-08-08
一文带你了解Java万物之基之Object类
Java是一门天然的面向对象的语言。而所有我们手动创造出来的类,都继承于同一个类,即Object类。本文将通过示例为大家详细介绍一下Java中的Object类,需要的可以参考一下
2022-03-03
JPA与mybatis-plus不兼容问题的解决
本文主要介绍了JPA与mybatis-plus不兼容问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-02
Spring详细解读事务管理
Spring事务的本质就是对数据库事务的支持,没有数据库事务,Spring是无法提供事务功能的。Spring只提供统一的事务管理接口,具体实现都是由数据库自己实现的,Spring会在事务开始时,根据当前设置的隔离级别,调整数据库的隔离级别,由此保持一致
2022-04-04
java遍历properties文件操作指南
在java项目开发过程中,使用properties文件作为配置基本上是必不可少的,有很多如系统配置信息,java如何遍历properties文件呢,本文将详细介绍,希望可以帮助到您
2012-11-11
解决IDEA占用C盘空间过大的问题
这篇文章主要介绍了解决IDEA占用C盘空间过大的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
2021-02-02
最新评论