mybatis-plus---3、主键策略

    技术2025-09-20  45

    主键策略

    数据库插入时一般都会有主键 id,mybatis-plus 通过注解来插入不同的主键 id

    @TableId

    属性类型必须指定默认值描述valueString否“”主键字段名typeEnum否IdType.NONE主键类型

    IdType

    值描述AUTO数据库ID自增,表中id字段必须为自增NONE若有手动设置主键值,则使用手动设置的值,如果没有,则使用雪花算法生成INPUTinsert前自行set主键值ASSIGN_ID雪花算法分配ID,主键类型为Number或String,since 3.3.0ASSIGN_UUID分配UUID,主键类型为String,since 3.3.0ID_WORKER过时,分布式全局唯一ID 长整型类型(please use ASSIGN_ID)UUID过时,32位UUID字符串(please use ASSIGN_UUID)ID_WORKER_STR过时,分布式全局唯一ID 字符串类型(please use ASSIGN_ID)

    开始使用

    **说明:**除了手动插入指定的 id 生成策略,其他策略在代码中都不需要设置实体类 id 的值,这里只使用 AUTO 的策略来演示

    实体类添加注解

    @Data @NoArgsConstructor @AllArgsConstructor public class User { @TableId(type = IdType.AUTO) // 自增策略 private Long id; private String name; private Integer age; private String email; }

    注意:当使用长主键时,那么实体类成员变量 id 应该用 Long 类型

    测试自增策略

    @Test void test1(){ User user = new User(); // 不需要set主键id user.setName("Mario"); user.setAge(22); user.setEmail("blp001@qq.com"); userMapper.insert(user); }

    查看结果

    主键 id 自增为 6,测试成功
    Processed: 0.014, SQL: 9