@TableName(value="user")
//如果我们在entity中创建的实体类的名称和所连接的数据库的表名不一样(User类对应数据库中use这个表)
此时用上面这个注解就可以完成 实体类名称和所对应的数据库表名的对应映射关系。
@TableField(value="name") 映射非主键字段 value映射字段名
exist=false 这个参数表示 下面实体类中的参数gender不在我们连接的数据库中,就自动跳过它了 不会报错
如果查询的数据库字段不想要某个字段 也可以最对应实体类的参数上面加上这个注解 这样就可以实现了查询某些字段值的作用
fill这个参数表明自动填充 在订单 创建时间和修改时间方面用的很多 数据库中字段create_time update_time 是data类型的
fill = FieldFill.INSERT表明在第一次添加的时候就加进去时间 INSERT_UPDATE是开始和结束的时候加进去两个时间
如上图 如果我们entity中的实体类某个参数和数据库表中字段名不一样,也会造成连接失败 如果用@TableField这个注解就可以解决
@TableId(type=)
type可以是下面这几个值 下面带有@Deprecated注解的都是淘汰了的
type=AUTO 逐渐自增
NONE MP set主键 雪花算法实现
INPUT 需要开发者手动赋值 但是开发者没有手动赋值 就是逐渐自增的方式
ASSIGN_ID MP 分配ID 可以使用 long Integer String 着三种类型(MP是mybatisplus的意思) 也是雪花算法
ASSIGN_UUID 分配UUID 主键类型必须是String类型的
@TypeId 中 type默认是主键生成了随机数 也就是雪花算法
这个参数设置主键的生成策略 是自增的还是某种算法算出来的值
@Version 乐观锁 保证多次修改中只修改一次 (处理并发的一种解决方案)
通过version字段来保证数据的安全性,当修改数据的时候,会以version作为条件,当条件成立的时候才会修改成功
例如 version=1 修改的时候会以version==1作为条件,修改完之后version=2
如果多个线程修改这个数据的时候,保证只修改了一次 也就是上面说的多次修改中只修改一次
@EnumValue 通过枚举类注解,将数据库字段映射成实体类的枚举
@TableLogic 映射逻辑删除 在逻辑上删除 并不是实际删除了//(假删,比如用户注销信息,实际上并不是把他的信息从数据库中删除,而是逻辑上的删除)
一般会在数据库中加一个字段, 给实体类添加一个注解
然后再application.yml文件中添加配置