用0去修改数据库异常
问题描述:
在更新或者插入语句中用 0 去更新字段,但是发现更新的时候没有更新数据,插入的时候字段值为null。
原因:
如下这条插入语句,sqMoney设置的值为 0 在mybatis框架中会把 0 认定为null,导致条件不成立
<insert id="saveDetail" parameterType="com.ideal.oasystembackproject.entity.WfFormPurchaseDetailEntity">
insert into wf_form_purchase_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="sqMoney!= null and sqMoney!= ''">sqMoney,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="sqMoney!= null and sqMoney!= ''">#{sqMoney},</if>
</trim>
</insert>
解决办法:
如下添加一些判断条件即可
<insert id="saveDetail" parameterType="com.ideal.oasystembackproject.entity.WfFormPurchaseDetailEntity">
insert into wf_form_purchase_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="(sqMoney!= null and sqMoney!= '') or (sqMoney== 0 and sqMoney== 0.0)">sqMoney,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="(sqMoney!= null and sqMoney!= '') or (sqMoney == 0 and sqMoney== 0.0)">#{sqMoney},</if>
</trim>
</insert>