mybatis添加空值 向数据库中添加null

mybatis添加空值

我们添加数值时可能是空值,如果我们不做处理,那么在数据库中存储的将是"" 空字符串,如果有重复约束将会导致下一次插入数据失败,那么该如何解决这个问题呢?

  1. 在对象赋值不完整的字段后添加 jdbcType 如:
<insert id="addAcc" parameterType="com.by.tsgl.bean.User">
        insert into user
            (user_id,user_account,user_email,user_tel,user_pwd,user_name,user_sex,user_id_number)
        values
               (#{user_id},#{account},#{user_email,jdbcType=VARCHAR},#{user_tel, jdbcType=CHAR},#{password},#{username, jdbcType=VARCHAR},#{user_sex,jdbcType=TINYINT},#{user_id_number,jdbcType=CHAR})
    </insert>
  1. 然后在 mybatis-config.xml 中添加配置
<settings>



	<setting name="jdbcTypeForNull" value="NULL" />  



</settings>
  1. 如若是其它类型也可使用 标签
<if test="otherType != null and otherType!= ''" >



    otherType = #{otherType}



</if>

测试:

postman数据

{
    "user_id":10,
    "account" : "10316081",
    "password":"123456",
    "username":null,
    "user_email": "",
    "user_tel":"",
    "user_sex":"",
    "user_id_number":""
}

看到数据库中 只有username显示为null,其他均为空白(空白的空值如果设置了不可重复的约束,那么再次插入会出错!)
在这里插入图片描述

使数据库中插入null值的请求json修改意见:

  1. 当我们将""改为null后,插入值为正确。

    
    {
    "user_id":10,
    "account" : "10316081",
    "password":"123456",
    "username":null,
    "user_email": "",
    "user_tel":"",
    "user_sex":"",
    "user_id_number":"}
    
    
    
    
    
  2. 我们直接将为空值的 key-value对 全部删除

    • {
          "user_id":10,
          "account" : "1016081",
          "password":"123456"
          //空值的字段全部不要也可以正确插入数据
      }
      
    • 这种方式也可以使数据库中对应字段为null

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值