今天发现项目中对应的某条记录某一列的值为null,但是针对这条记录这一列的值不应该为null。检查代码发现是在插入的时候没有对这一列对应的成员变量赋值,即便数据库这一列有默认值,在插入到数据库时依然插入了null。mysql 的默认值只有在insert语句中没有这个字段时才会生效,如果insert中有插入该字段而该字段取值又为null,null值将被插入到表中,默认值此时失效。在mybatis开发中通常会直接插入一个表对象,表中所有字段都会插入,因此如果要设置默认值,应该在业务层写逻辑,而不能依赖mysql的default来设置默认值。另外尽量保证对于数据库的新增应该使用动态的sql来进行操作,这样也能避免上面问题。
关于mysql有默认值但是仍然插入null的问题记录
最新推荐文章于 2024-02-21 15:21:20 发布