com.baomidou.mybatisplus.extension.service.impl的save方法的id是如何生成的
时间: 2024-09-12 15:14:55 浏览: 47
在使用 MyBatis-Plus 框架时,`com.baomidou.mybatisplus.extension.service.impl` 包下的 `ServiceImpl` 类中提供的 `save` 方法用于将实体对象保存到数据库中。`save` 方法内部会根据实体类中配置的主键策略来生成 id。
MyBatis-Plus 提供了多种主键生成策略,包括:
1. 自动增长 ID(默认策略):如果实体类的主键字段类型是 Integer 或 Long,并且被标记为 `@TableId` 注解,那么 MyBatis-Plus 会默认使用数据库的自动增长功能来生成 id。
2. 全局唯一 ID(如 UUID、Snowflake 等):可以通过配置全局的 ID 生成器来生成全局唯一的 id。
3. 自定义 ID 生成器:可以通过实现 `IdentifierGenerator` 接口来自定义 id 的生成逻辑。
在大多数情况下,默认使用的是自动增长 ID 策略,即数据库层面会在插入新记录时自动为 id 字段赋予一个唯一的递增值。
如果你使用的是自动增长策略,那么在数据库层面,通常会在创建表时为 id 字段设置自增属性,如下所示:
```sql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
在这个例子中,当你插入一条新记录且没有指定 `id` 值时,数据库会自动为 `id` 字段赋予下一个自增的数值。
阅读全文