在自己练习的时候,使用mybatis-plus框架时候出现的问题
情况说明:
Mapper层去直接继承了BaseMapper
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
而后Service层
结果将数据添加到数据库后
解决思路
首先想到的是,数据库表中字段在设计时候,是否有添加自增
原因:
Mybatis_plus会采用默认的主键生成策略:雪花算法
雪花算法: 使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0,每次生成唯一的值
解决方案:
在实体类中的id上添加如下注解
@Data
public class User {
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
private String username;
private String password;
private String salt; // 盐值
}
解决,这部分在自己学习的时候还有疏漏,需要再去补充