java integer null 0_mybatis 在存储Integer、bigdecimal等java数据类型时,将0存成null

我们的项目中,有关于金额的计算,所以,一般在java环境中我们使用bigdecimal来做运算和存储金额信息。数据库sqlServer2008用的float类型

问题是,当我将金额赋值成0时,很意外的发现数据库存储的是null. 我的持久层框架用的mybatis。

在查阅了一翻资料后发现,原来是我在判断金额类型时,一个不规范的错误导致的,直接上代码。

--有问题代码 PS我的maypper文件

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

useGeneratedKeys="true" keyProperty="tktdataid" >

insert into T_BLUESKY_ORD_TKTDATA

(

comm

)

values(

  --------就是这里,做了一个判断是否是空串的判断

null,

#{comm},

)

-----------就是因为我做了一个空串的判断,导致mybatis会按照字符串来解析属性。这就尴尬了。首先既然是封装数据类型,不可能有空串的可能性,所以这里应该只判断是够为null就可以了。

----正确写法

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

useGeneratedKeys="true" keyProperty="tktdataid" >

insert into T_BLUESKY_ORD_TKTDATA

(

comm

)

values(

  --------就是这里,做了一个判断是否是空串的判断

null,

#{comm},

)

具体的详细问题分析,大家可以参考http://blog.csdn.net/qing_gee/article/details/50518795

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值