mybatisplus id自增
时间: 2023-11-23 20:58:02 浏览: 44
在MyBatis-Plus中,可以通过使用注解@TableId和@TableName来实现自增长ID。其中@TableId注解用于标识主键字段,@TableName注解用于标识表名。在@TableId注解中,可以设置value属性为Id字段名,type属性为Id类型,如下所示:
```java
@TableId(value = "id", type = IdType.AUTO)
private Long id;
```
其中,type属性有以下几种取值:
- AUTO:数据库ID自增
- NONE:无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
- INPUT:用户输入ID,该类型可以通过自己注册自动填充插件进行填充(注解里等于跟随全局,全局里约等于 ID_WORKER)
- ID_WORKER:全局唯一ID,Long类型的数字类型,生成策略为:ID_WORKER,1L
- UUID:全局唯一ID,String类型,生成策略为:UUID
- ID_WORKER_STR:字符串全局唯一ID,生成策略为:ID_WORKER,该类型可以通过自己注册自动填充插件进行填充
例如,使用AUTO类型自增长ID的示例代码如下:
```java
@TableId(value = "id", type = IdType.AUTO)
private Long id;
```
相关问题
mybatisplus主键自增
MyBatis-Plus(简称MP)是一款基于 MyBatis 的增强工具,它提供了许多便捷的功能,包括主键自增。
在 MyBatis-Plus 中,实现主键自增有两种方式:
1. 使用数据库的自增主键策略:在数据库表中设置主键字段为自增,在实体类中将该字段标记为 `@TableId(type = IdType.AUTO)`,这样在插入数据时,数据库会自动生成主键值并返回给实体对象。
示例代码:
```java
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String username;
private String password;
}
```
2. 使用雪花算法生成全局唯一的主键值:在实体类中将主键字段标记为 `@TableId(type = IdType.ASSIGN_ID)`,这样在插入数据时,MyBatis-Plus 会使用雪花算法生成唯一的主键值。
示例代码:
```java
@Data
@TableName("user")
public class User {
@TableId(type = IdType.ASSIGN_ID)
private Long id;
private String username;
private String password;
}
```
以上就是 MyBatis-Plus 中实现主键自增的两种方式。你可以根据需求选择合适的方式来使用。
mybatisplus 自增步长
MybatisPlus 的自增步长可以通过在实体类的主键字段上添加 `@TableId` 注解来设置。具体来说,可以使用 `@TableId(type = IdType.AUTO, value = "id", increment = 1)` 注解来设置自增步长为 1。
其中 `type` 参数指定主键生成策略,常用的有 `IdType.AUTO`(自动增长)、`IdType.ID_WORKER`(分布式 ID 生成器)、`IdType.UUID`(随机 UUID)等。`value` 参数指定主键对应的数据库字段名,`increment` 参数指定自增步长。
除此之外,还可以在 MybatisPlus 的全局配置中设置自增步长,具体可以参考官方文档:https://baomidou.com/guide/sequence.html#%E8%87%AA%E5%A2%9E-id-%E5%80%BC%E8%AE%BE%E7%BD%AE。