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。