mybatis-plus常用注释

mybatis-plus常用注释
彼岸的風@TableName
实体类的名字是User,数据库表名是t_user
1 |
|
@TableId
实体类的属性名是 id,数据库的列名是 uid,此时使用 value 属性将属性名映射到列名
1 |
|
type属性用来定义主键策略
- IdType.ASSIGN_ID 使用基于雪花算法的策略生成数据id, 注意:当对象的id被明确赋值时,不会使用雪花算法
1
2
private Long id; - IdType.AUTO 使用数据库的自增策略 注意:该类型请确保数据库设置了 ID自增 否则无效
1
2
private Long id; - 全局配置 要想影响所有实体的配置,可以设置全局主键配置
1
2#全局设置主键生成策略
mybatis-plus.global-config.db-config.id-type=auto
@TableField
功能同TableId的value属性,exist属性用于非数据库中的字段,用于想额外返回给前台表之外的值
注意:MP会自动将数据库中的下划线命名风格转化为实体类中的驼峰命名风格例如,数据库中的列 create_time 和 update_time 自动对应实体类中的 createTime 和 updateTime
1 | //注明非数据库字段属性 实体类上使用 |
自动填充
项目中经常会遇到一些数据,每次都使用相同的方式填充,例如记录的创建时间,更新时间等。我们可以使用MyBatis Plus的自动填充功能,完成这些字段的赋值工作。
例如,阿里巴巴的开发手册中建议每个数据库表必须要有create_time 和 update_time字段,我们可以使用自动填充功能维护这两个字段
- 添加fill属性
1
2
3
4
5
private LocalDateTime createTime;
private LocalDateTime updateTime; - 实现元对象处理器接口 -> 创建handler包,创建MyMetaObjectHandler类 不要忘记添加 @Component 注解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19package com.test.mybatisplus.handler;
public class MyMetaObjectHandler implements MetaObjectHandler {
public void insertFill(MetaObject metaObject) {
log.info("start insert fill ....");
this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
}
public void updateFill(MetaObject metaObject) {
log.info("start update fill ....");
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
}
}
@TableLogic
逻辑删除
- 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据
- 逻辑删除:假删除,将对应数据中代表是否被删除字段的状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录
使用场景:可以进行数据恢复
- 数据库中创建逻辑删除状态列
- 实体类中添加逻辑删除属性
1
2
3
private Integer deleted;
分页插件和乐观锁插件
1 |
|
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果