社区
Java EE
帖子详情
mybatis BigDecimal 遇到0.0和null(mybatis框架问题)
luckymjl2
2013-11-28 01:31:34
mybatis 3.2.2
数据库:db2、oracle
步骤:
数据库中字段为17位整,小数2位。可为空
数据库中的字段存入null和0.0两种类型
do类里接受字段类型为BigDecimal
查询数据result反射回do类的时候会报NumberFormatException的异常。
请问有人遇到过并且解决这个问题吗?谢谢
...全文
2618
2
打赏
收藏
mybatis BigDecimal 遇到0.0和null(mybatis框架问题)
mybatis 3.2.2 数据库:db2、oracle 步骤: 数据库中字段为17位整,小数2位。可为空 数据库中的字段存入null和0.0两种类型 do类里接受字段类型为BigDecimal 查询数据result反射回do类的时候会报NumberFormatException的异常。 请问有人遇到过并且解决这个问题吗?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luckymjl2
2013-11-28
打赏
举报
回复
判断这个没法做啊,这是框架本身给你把返回值set到do类里。我没法判断啊,除非修改mybatis源码
teemai
2013-11-28
打赏
举报
回复
不能先判断下吗?null和0.0两种类型
mybatis
中
BigDecimal
中的0存为
null
的
问题
解决
在做
mybatis
的插入和修改操作时,发现了奇怪的
问题
, java中类型为Bigdicemal时,且值为0时,存入到数据库中的值为
null
,而不是0,其它的非0值正常。 发现
问题
的原因是
mybatis
中的类型判断是弱类型,而不是java中的强类型。 错误语句如下: <if test="
bigDecimal
Num !=
null
and
bigDecimal
Num !=''">...
mybatis
中
BigDecimal
中的0存为
null
的坑
问题
点: 做
mybatis
的插入和修改操作时,java中类型为Bigdicemal时,且值为0时,存入到数据库中的值为
null
,而不是0,其它的非0值正常。
mybatis
中的类型判断是弱类型,而不是java中的强类型。
mybatis
会自动把
BigDecimal
类型转为string,即0变为
null
啦。可以看到是 Begdecimal 类型,对应查出来的日志如下: 可以看到,把 去掉
bigDecimal
Num!
mybatis
传入
BigDecimal
参数的坑
mybatis
似乎把为0的
BigDecimal
类型当成
null
来处理
java integer
null
0_
mybatis
在存储Integer、
bigdecimal
等java数据类型时,将0存成
null
我们的项目中,有关于金额的计算,所以,一般在java环境中我们使用
bigdecimal
来做运算和存储金额信息。数据库sqlServer2008用的float类型
问题
是,当我将金额赋值成0时,很意外的发现数据库存储的是
null
. 我的持久层
框架
用的
mybatis
。在查阅了一翻资料后发现,原来是我在判断金额类型时,一个不规范的错误导致的,直接上代码。--有
问题
代码 PS我的maypper文件/p>...
MyBatis
中
BigDecimal
0被设为空串踩坑记录
MyBatis
中
BigDecimal
。
Java EE
67,535
社区成员
225,849
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章