Mybatis double、int类型执行update语句的问题。

MyBatis ifTest与包装类使用技巧
本文探讨了在MyBatis中使用ifTest标签处理double和int类型字段时遇到的问题,以及如何通过改用包装类如Double和Integer解决更新为0的难题。

前提:一般执行update语法和insert语法时,都会用到if test的标签,动态条件来执行。

然后刚开始的时候发现,double类型字段if test标签也是写成了 <if test="xxx != null and xxx !=' ' ">  这个时候发现,当更新语法时,这个字段没有传入值时,被默认的改成0。

然后去搜索资料,说写成这种形式即可,<if test="xxx != null and xxx !=' ' or xxx != 0  ">  这样确实可以保证,当不传入xxx这个值时,不会去改动,不会变成0。

但是后来问题来了,当需要这个字段更新成0时,用这种就执行不了,查了好多资料,基本都不行。后来发现,在实体类中将这double 和 int 类型字段改成包装类即可。

包装类即将这些字段改成Object类型,因为8大数据类型不具备面向对象的功能,同String一样判断  把double改成DOUBLE,把int改成Integer即可,然后

<if test="xxx != null   "> 只需判断不等于null就可以完美解决。最后附上8大基本数据类型对应的包装类

基本数据类型及对应的包装类
基本数据类型对应的包装类
byteByte
shortShort
intInteger
longLong
charCharacter
floatFloat
doubleDouble
booleanBoolean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值