MySQL “Field 'userId' doesn't have a default value”

意图通过程序往表中插入一条新的数据,执行SQL语句如下:

insert into t_table (parma1, parma2) values(value1, value2);

执行结果显示没有通过,异常则是 “Field ‘userId’ doesn’t have a default value”

{
  "status": 500,
  "err": "
  ### Error updating database.  Cause: java.sql.SQLException: Field 'parma2' doesn't have a default value
  ### The error may involve com.XXMapper.insertSelective-Inline
  ### The error occurred while setting parameters
  ### SQL: insert into t_book      ( parma1 )       values ( ? )
  ### Cause: java.sql.SQLException: Field 'parma2' doesn't have a default value
  ; ]; Field 'parma2' doesn't have a default value; nested exception is java.sql.SQLException: Field 'parma2' doesn't have a default value"
}

出发试着解决问题,不管是程序上还是直接百度

从异常信息的字面上,不外乎 “无设置默认值” 的问题,事实上真的是这样麽 ?

  • 不是没有设置默认值的问题 [数值默认0,其他默认NULL]
  • 非配置文件配置问题,因为在mysql7.0及以上找不到配置文件 “my.ini” 或者 “my_default.ini”
  • 亦非SQL语句问题,越过程序直接执行一切OK

… 这才回过神来,异常信息中体现的SQL少了一个 parma2参数

  • 不是 mapper.xml 脚本文件中的配置问题
  • 非 controller.java 文件中参数配置问题
  • 而是对象中 parma2 属性少了 set()函数,当然构造函数也不例外 - -!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值