转自:
mybatis插入mysql字段默认值不生效的处理方法分享
下文笔者讲述MyBatis中mysql字段默认值不生效的处理方法分享,如下所示:
MyBatis简介
mybatis是一个持久层框架,我们在java项目中经常使用此框架,通常用于操作mysql数据库 有时候数据库中的字段设置默认值及not null, 那么如一张表中user(id,userName,address)三个列,其中userName和address都设置为not nullinsert into user(userName,address) values(#{userName},#{address}) 以上代码,当我们只传入userName时,会报相应的错误,如: Caused by: com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'address' cannot be null
出现以上错误的原因:insert时 没有指定address值,所以产生相应的错误 我们可以采用以下方式修正此错误insert into user(userName) values(#{userName}) 但是采用以上方法,可插入数据,但是当我们需要address时,则无法进行插入, 则以上不是一个最优的解决方案
下文笔者讲述世界上最完美的解决方案,如下所示:
userName, address, #{userName}, #{address}, insert into User( ) values ( )