主键生成策略
自3.3.0开始,默认使用雪花算法+UUID(不含中划线)
public enum IdType {
AUTO(0), // 数据库id自增
NONE(1), // 未设置主键
INPUT(2), // 手动输入
ASSIGN_ID(3),
ASSIGN_UUID(4); // 默认全局ID uuid
}
在pojo层中配置实体类的主键生成策略,用注解 @TableId(type = IdType.XXXX) 设置其主键生成
策略。
// 对应数据库中的主键(uuid、自增id、雪花、redis、zookeeper)
@TableId(type = IdType.AUTO) // 一旦手动输入,必须输入
private Long id;
private String name;
private Integer age;
private String email;
CURD插件
想要通过mybatisplus对数据进行增删改查,需要用到持久层,即创建出一个mapper包下的接口,并带上注解@Repository表示它可以自动的被@ComponentScan
通过路径扫描给找到。
/**
* 在对应的Mapper上面继承基本的类 BaseMapper
*/
@Repository // 代表持久层
public interface UserMapper extends BaseMapper<User> {
/**
* 到这一步 所有的 CRUD 操作都已经完成
* 无需像mybatis一样配置一大堆文件
*/
}
在测试类中进行测试插入,可以发现,我们没有对ID进行设置,是因为我们主键的生成策略采用的是 AUTO,需要注意的是:主键生成策略的设定必须与你的数据库一致!
// 测试插入
@Test
public void testInsert(){
User user = new User();
user.setName("Levin");
user.setAge(29);
user.setEmail("1340445970@qq.com");
int result = userMapper.insert(user); // 帮我们自动生成id
System.out.println(result); // 受影响的行数
System.out.println(user); // 发现id会自动回填
}
测试插入在控制台输出如下:
id是自动生成的当你在插入时,其id会等于此刻的id+1