[基础不牢地动山摇]MyBatis Generator错误使用之(doesn‘t have a default value / generatedKey / )

本文介绍了一个关于MyBatis框架中PID字段默认值缺失的问题及其解决方案。作者在测试接口时遇到错误提示,通过排查发现是由于SQL插入语句未包含PID字段导致,并且数据库中该字段也未设置默认值或自增长。最终通过调整插入语句及更改配置文件解决了问题。

今天测试接口的时候
在这里插入图片描述
报错 Field ‘p_id’ doesn’t have a default value在这里插入图片描述
打印了一下Passager,没什么问题
Passager: Passager [Hash = 13932247, pId=0, passaerName=string, age=0, serialVersionUID=1]在这里插入图片描述
发现问题出在了SQL语句。
SQL: insert into passager (passaer_name, age) values (?, ?)在这里插入图片描述
因为用的是MyBatis框架,所以那很可能就是映射出问题了。
一看发现,果然是
在这里插入图片描述
他这里没有插入pid,而我数据库也没有设置默认或自增。手动改写语句。
在这里插入图片描述
经测试,能够成功添加。
为什么他会不插入pid呢?
我的所有的映射文件是用MyBatis Generator自动生成的,而配置里配置了generatedKey
在这里插入图片描述
这里设置了生成规则,所以就生成的mapper不会插入id
在这里插入图片描述
最近简单的做法就是把配置改成这样。
当然,正确的应该是修改数据库的设计(设计的不是很合理),但是课设没什么时间剩下了,所以就图方便…注意后续插入时主键不能重复。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值