MybatisPlus中tableName、tableId 和 tableField
在MyBatis-Plus中,tableName
、tableId
和 tableField
等注解主要用于自动映射实体类与数据库表之间的关系,以及指定表的主键、字段名等,以减少手动配置的工作量。这些注解是MyBatis-Plus为了简化开发而提供的强大特性之一。下面分别介绍这些注解的常用属性及其用法:
1. @TableName
@TableName
注解用于指定实体类对应的数据库表名。如果数据库表名与实体类名(默认驼峰转下划线)一致,则可以不使用这个注解。但是,如果表名与实体类名不一致或者需要动态指定表名,那么这个注解就非常有用。
常用属性:
value
:用于指定数据库表名。
@TableName("user_info") public class UserInfo { // 字段定义 }
2. @TableId
@TableId
注解用于指定实体类的属性对应数据库表的主键。
常用属性:
value
:用于指定数据库表中主键的列名,一般情况下可以省略,因为MyBatis-Plus默认会寻找名为id
的属性作为主键。
type
:用于指定主键的生成策略,如IdType.AUTO
(自动增长)、IdType.INPUT
(手动输入)、IdType.ASSIGN_ID
(使用雪花算法生成ID)等。
@TableId(value = "id", type = IdType.AUTO) private Long id;
3. @TableField
@TableField
注解用于指定实体类的属性与数据库表的字段之间的映射关系。当实体类的属性名与数据库表的字段名不一致时,需要使用此注解来明确映射关系。
常用属性:
value:用于指定数据库表中的字段名。
exist:用于标记数据库表中是否存在该字段,默认为true
。当设置为false
时,MyBatis-Plus在执行数据库操作时,会忽略该字段。
@TableField("user_name") private String userName; @TableField(exist = false) private transient String tempData; // 假设tempData不需要映射到数据库表中