MySql默认属性设置字段插入null没有默认显示的原因

在使用MyBatis进行数据库操作时,遇到一个问题:设置了默认值的MySQL字段在插入null时未使用默认值。原因是使用了insert()方法,当实体对象属性为空时,对应字段插入null,而非默认值。解决方法是改用insertSelective()方法,它会动态组装条件,只插入非空字段,从而避免覆盖默认值。
摘要由CSDN通过智能技术生成

我将mysql的数据表的某个字段设置了默认值为1,当向该表插入数据的时候该字段的值不是默认值,而是null。

原因:
对数据库的操作我使用了持久化工具mybatis,插入数据的时候插入的是整个实体,直接使用的是持久层的insert(实体对象)方法插入的数据

这样就会出现一个问题,当实体对象中某个属性值为空时,对应的数据库的字段就会插入null值,而默认值是插入时不指定该字段,该字段的值才会取默认值。

所以这里我是向设置了默认值的字段插入了null,才导致出现上述错误。
解决方法:

这时候我改用insertSelective(实体对象)方法插入实体对象就不会出现上述问题了

  • 注意这个地方 他是动态组装条件
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值