1、@TableName
- 描述:表名注解,标识实体类对应的表
- 使用位置:实体类
例子:
@TableName("user") // 尤其是表明和类名不匹配的情况下会用到
public class User {
private Long id;
private String name;
}
2. @TableId
-
描述:主键注解,标识实体类中的主键字段
-
使用位置:实体类的主键字段
-
例子:
@TableName("user")
public class User {
@TableId
private Long id;
private String name;
}
- 属性:
| 属性 | 类型 | 必须指定 | 默认值 | 描述 |
|---|---|---|---|---|
| value | string | 否 | "" | 字段名 |
| type | Enum | 否 | IdType.NONE | 指定主键类型 |
- IdType 支持的类型有:
- AUTO:数据库 ID 自增
- NONE:无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
- INPUT:insert 前自行 set 主键值
- ASSIGN_ID:分配 ID(主键类型为 Number(Long 和 Integer)或 String)(since 3.3.0),使用接口IdentifierGenerator的方法nextId(默认实现类为DefaultIdentifierGenerator雪花算法)
- ASSIGN_UUID:分配 UUID,主键类型为 String(since 3.3.0),使用接口IdentifierGenerator的方法nextUUID(默认 default 方法)
常见的是:AUTO、INPUT、ASSIGN_ID
3. @TableField
-
描述:普通字段注解
-
例子:
@TableName("user")
public class User {
@TableId
private Long id;
private String name;
private Integer age;
@TableField("is_married")
private Boolean isMarried;
@TableField("`concat`")
private String concat;
}
一般情况下我们并不需要给字段添加@TableField注解,一些特殊情况除外:
- 成员变量名与数据库字段名不一致
- 成员变量是以isXXX命名,按照JavaBean的规范,MybatisPlus识别字段时会把is去除,这就导致与数据库不符。
- 成员变量名与数据库一致,但是与数据库的关键字冲突。使用@TableField注解给字段名添加转义字符:``
如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~









网友评论