springboot
框架:springboot+mybatisplus+shiro+thymeleaf
问题:
使用
@TableId(type = IdType.AUTO)
注解自动生成主键,结果报错,主键未自动生成
Mybatis Plus的主键策略有如下几种:
- AUTO 数据库ID自增
使用AUTO策略时,数据库建表时需要将主键设置成AUTO_INCREMENT
,否则会插入不了 - INPUT 用户输入ID
用户输入ID - ID_WORKER 全局唯一ID,Long类型的主键
全局唯一ID,Long类型的主键 - ID_WORKER_STR 字符串全局唯一ID
字符串全局唯一ID - UUID 全局唯一ID,UUID类型的主键
UUID类型的主键 - NONE 该类型为未设置主键类型
该类型为未设置主键类型
其中id_worker和id_worker_str当前版本似乎弃用
原因有很多
- 使用AUTO策略时,数据库建表时需要将主键设置成AUTO_INCREMENT,否则会插入不了
- 使用AUTO,INPUT,ID_WORKER时,数据库字段需要时int
- 使用AUTO,INPUT,ID_WORKER时,entity代码中id的类型要为Long,不能是基础类型long
- ID_WORKER_STR似乎无法自动生成主键了,不建议将数据库id字段设计为string类型
我的原因:
基本上犯了上面的所有。。。
解决办法:
按上面的原因自查即可。