MyBatis Plus常用注解:
1. @TableName(“表名称”)
当实体类的名称与数据库表名称不一致,且两者不易修改名称时,可用于统一该实体类与表名称。
@TableName("tb_user")
public class User{
...
}
2. @TableId
当数据库表主键名称不是id时,由于MyBatis Plus默认主键名称为id,此时无法自动生成主键,所以可以通过此注解标识此字段为主键。
@TableName("tb_user")
public class User{
@TableId
private Long userId;
...
}
3. @TableField(“name”)
当数据库表字段名称与实体类的字段名称不一致时,可以通过该注解统一。
@TableName("tb_user")
public class User{
@TableId
private Long userId;
@TableField("name")
private String realName;
...
}
MyBatis Plus排除非表字段的三种方式:
当实体类中存在字段而表中不存在时,要想使用MyBatis Plus 时不会使该字段生成到sql语句中,有以下三种方式:
1. 使用 transient 修饰符
@TableName("tb_user")
public class User{
@TableId
private Long userId;
@TableField("name")
private String realName;
private transient String remark;
...
}
此修饰符表示这个字段不会被序列化,所以不会出现在MyBatis Plus 生成的Sql语句中。
但是如果该字段需要在某些功能中参与序列化,则该方式不可取。
2. 使用 static 修饰符
@TableName("tb_user")
public class User{
@TableId
private Long userId;
@TableField("name")
private String realName;
private static String remark;
...
}
由此修饰符修饰的字段不会被 MyBatis Plus 生成到 Sql 语句中。
但是这会使该类的所有对象共用这个字段,所以对于需要私有使用的情况不适用。
3. 使用注解 @TableField(exist=false)
@TableName("tb_user")
public class User{
@TableId
private Long userId;