springboot中@GeneratedValue作用:
(1)@GeneratedValue注解存在的意義主要就是為一個實體生成一個唯一標識的主鍵、@GeneratedValue提供了主鍵的生成策略。
(2)@GeneratedValue注解有兩個屬性,分別是strategy和generator,
generator屬性:
-
generator屬性的值是一個字符串,默認為 "",其聲明了主鍵生成器的名稱
-
(對應於同名的主鍵生成器@SequenceGenerator和@TableGenerator)。
strategy屬性:提供四種值:
-
-AUTO主鍵由程序控制, 是默認選項 ,不設置就是這個
-
-IDENTITY 主鍵由數據庫生成, 采用數據庫自增長, Oracle不支持這種方式
-
-SEQUENCE 通過數據庫的序列產生主鍵, MYSQL 不支持
-
-Table 提供特定的數據庫產生主鍵, 該方式更有利於數據庫的移植
在是用tk.mybatis數據庫添加時 先將對象id設為null
project.setId(null);
然后用tkmybatis的insertSelective方法添加
projectMapper.insertSelective(project);
添加后
project.getId()可以直接取出剛添加到數據庫自動生成的主鍵id。