1. @TableName注解
- 用来设置实体类所对应的表名
2. @TableId注解
- 指定属性所对应的字段作为主键
- 两个属性
- type属性:用于指定主键生成的字段
- value属性:用于指定主键生成策略
3. @TableField注解
- 指定属性所对应的普通字段名
4. @TableLogic
- 指定逻辑删除字段
案例:
@Data
@TableName("t_user") // 设置实体类所对应的表名
public class User {
// MyBatis-Plus默认指定id为主键,@TableId注解可以指定属性所对应的字段作为主键
// value属性用于指定主键的字段
// value属性用于指定主键生成策略
// @TableId(value = "uid", type = IdType.AUTO)
@TableId("uid")
private Long id;
// 指定属性所对应的字段名
@TableField("user_name")
private String name;
private Integer age;
private String email;
private SexEnum sex;
// 指定逻辑删除字段
@TableLogic
private Boolean isDeleted;
}
5. @Version注解
- 指定乐观锁版本号字段
- 防止数据被重复操作
- 防止两个线程同时操作同一个数据,保证数据的安全性
6. @EnumValue注解
- 通用的枚举类注解,标识属性的值存储到数据库中
案例:
第一步:编写性别枚举类(为什么要将Integer属性标识为要存储到数据库中的属性呢?那是因为数据库中对应的性别字段为int类型)
@Getter
public enum SexEnum {
MALE(1, "男"),
FEMALE(2, "女");
@EnumValue // 标识属性的值存储到数据库中
private Integer sex;
private String sexName;
SexEnum(Integer sex, String sexName) {
this.sex = sex;
this.sexName = sexName;
}
}
第二步:将枚举类添加到JavaBean
第三步:再配置文件中添加枚举扫描包配置项
7. @DS注解
- 切换数据源
- 不能使用事务,否则数据源不会切换,使用的还是第一次加载的数据源;
- 第一次加载数据源之后,第二次、第三次…操作其它数据源,如果数据源不存在,使用的还是第一次加载的数据源;