1、错误描述
在做一个电商网站项目时,使用 Mybatis + MySQL 时出现问题 Caused by: java.sql.SQLException: Field 'id' doesn't have a default value
,网上很多人说是 MyBatis 插入数据行 ID 没生成自增。但是我尝试好久,没解决该问题。
2、错误原因
后来才发现是因为创建数据库时的建表语句中的 id 是主键的,但是在插入的过程中,没有给予数值,并且没有让 id 自增。
3、解决办法
修改数据库表中的id,让其自增(在插入的过程中,不插入id数据时)。
(我是直接将整个数据库都导出来,然后在每个表的 id 后面加上一个 auto_increment
), 如下 :1
2
3
4
5
6
7
8
9
10CREATE TABLE `d_user` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(45) DEFAULT NULL,
`password` varchar(45) DEFAULT NULL,
`zip` varchar(45) DEFAULT NULL,
`address` varchar(45) DEFAULT NULL,
`phone` varchar(45) DEFAULT NULL,
`email` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`)
)