@TableName
在开发的过程中,我们经常遇到以上的问题,即实体类所对应的表有固定的前缀,例如
t_
或tbl_
此时,可以使用@TableName
指定表前缀
@Data
@TableName("t_user")
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
全局配置表前缀
application.yml
mybatis-plus:
global-config:
db-config:
# 设置实体类所对应的表的统一前缀
table-prefix: t_
@TableId
将
属性
所对应的字段指定为主键,默认主键名为id
@Data
public class User {
// 将属性所对应的字段指定为主键
@TableId
private Long uid;
private String name;
private Integer age;
private String email;
}
参数作用
参数 | 作用 |
---|---|
value | 指定主键的字段名,使用情况为实体类的属性和表属性不一致时 |
type | 指定主键策略类型,可以修改自增类型等 |
type的常用主键策略:
@TableField
将
属性
所对应的字段指定为设置的value
@TableField("user_name")
private String name;
@TableLogic
@TableLogic
是 MyBatis-Plus 框架中的一个注解,用于标识逻辑删除
字段。
逻辑删除概念
- 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到被删除的数据
- 逻辑删除:假删除,将对应诗句中代表被删除字段的状态修改为
被删除状态
,之后在数据库中仍旧能看到此条数据记录
实现逻辑删除
-
创建逻辑删除状态列
-
给对应的实体类添加
@TableLogic
注解
@Data
public class User {
// 将属性所对应的字段指定为主键
@TableId(value = "uid")
private Long id;
@TableField("user_name")
private String name;
private Integer age;
private String email;
@TableLogic
private Integer isDeleted;
}
此时查询被删除的SQL语句变成如下:
==> Preparing: SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0
==> Parameters:
<== Columns: id, name, age, email, is_deleted
<== Row: 6, zhangsan, 18, zhangsan@qq.com, 0
<== Row: 7, zhangsan, 18, zhangsan@qq.com, 0
<== Total: 2