@TableId(type = IdType.ASSIGN_ID) private Long id; private String userName; private String passWord; } 2,ASSIGN_UUID(排除中划线的UUID) 如果使用IdType.ASSIGN_UUID策略,并重新自动生成排除中划线的UUID作为主键。主键类型为String,对应MySQL的表分段为VARCHAR(32) 提示:该策略使用接口IdentifierGenerator的方...
● AUTO:数据库ID自增,这种策略适合在数据库服务器只有1台的情况下使用,不可作为分布式ID使用 ● ASSIGN_UUID:可以在分布式的情况下使用,而且能够保证唯一,但是生成的主键是32位的字符串,长度过长占用空间而且还不能排序,查询性能也慢 ● ASSIGN_ID:可以在分布式的情况下使用,生成的是Long类型的数字,可以排序性能...
1,ASSIGN_ID(雪花算法) 如果不设置类型值,默认则使用IdType.ASSIGN_ID策略(自3.3.0起)。该策略会使用雪花算法自动生成主键ID,主键类型为长或字符串(分别对应的MySQL的表字段为BIGINT和VARCHAR) 提示:该策略使用接口IdentifierGenerator的方法nextId(以实现类为DefaultIdentifierGenerator雪花算法),下面是雪花算法介绍: ...
1、设置生成策略为ASSIGN_ID @Data@TableName("tbl_user")public class User {@TableId(type = IdType.ASSIGN_ID)private Long id;private String name;@TableField(value="pwd",select=false)private String password;private Integer age;private String tel;@TableField(exist=false)private Integer online;} ...
ASSIGN_ID分配ID(主键类型为Number(Long和Integer)或String)(since 3.3.0),使用接口IdentifierGenerator的方法nextId(默认实现类为DefaultIdentifierGenerator雪花算法)比下面的好 ASSIGN_UUID分配UUID,主键类型为String(since 3.3.0),使用接口IdentifierGenerator的方法nextUUID(默认default方法)生成32位的uuid ...
我们可以通过 @TableId 注解的type 属性来设置主键 id 的增长策略,一共有如下几种主键策略,可根据情况自由配置。 1,ASSIGN_ID(雪花算法) 如果不设置 type 值,默认则使用 IdType.ASSIGN_ID 策略(自 3.3.0 起)。该策略会使用雪花算法自动生成主键 ID,主键类型为 Long 或 String(分别对应 MySQL 的表字段为 BI...
1. Mybatis官方ID生成策略的问题 我们知道,mybatis-plus官方提供了很多ID生成策略 而其中个人觉得性能上最好的当属ASSIGN_ID,该策略能够得到一个19位的Long类型的值,Long类型的值天然有序,能很好的支持数据库的索引,所以我个人在工作中一般会把ID类型设置为bigint(mysql),然后在代码中使用这个策略。
该策略使用接口IdentifierGenerator的方法nextId以实现类为DefaultIdentifierGenerator雪花算法 @TableId(value = "id", type = IdType.ASSIGN_ID) private Long id; ASSIGN_UUID 如果使用IdType.ASSIGN_UUID策略,并重新自动生成排除中划线的UUID作为主键。主键类型为String,对应MySQL的表分段为VARCHAR(32) ...
在上节中,主键id我们并没有设置自增,mybatis默认帮我们生成了一个id IdType AUTO:数据库 ID 自增 NONE:无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT) INPUT: insert 前自行 set 主键值 ASSIGN_ID: 分配 ID(主键类型为 Number(Long 和 Integer)或 String)(since 3.3.0),使用接口...