文章目录
- 1. 开启日志
- 2. 设置Mapper文件扫描位置
- 3. 设置逻辑删除字段
- 4. 设置自动填充字段
- 5. 设置表名映射
- 6. 设置字段映射
- 7. 字段名和列名的驼峰映射
- 8. 设置主键生成策略
1. 开启日志
如果需要mp将SQL语句打印出来,可以配置日志输出。
mybatis-plus:
configuration:
# 打印SQL语句(日志)到控制台
log-impl: org.apache.ibatis.logging.stdout.stdOutImpl
2. 设置Mapper文件扫描位置
mybatis-plus:
# resource目录下mapper文件夹下所有xml文件
mapper-locations: classpath*:/mapper/*.xml
3. 设置逻辑删除字段
- 单独设置
逻辑删除字段上加 @TableLogic
public class Order {
// 使用逻辑删除要给数据库中的字段一个默认值
// 默认未删除值为0.默认已删除值为1
@TableLogic
private Integer isDeleted
}
- 全局设置
mybatis-plus:
global-config:
db-config:
logic-delete-field: isDeleted # 逻辑删除字段值
# 下面的根据需求来
logic-delete-value: 1 # 逻辑已删除值(默认为1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为0)
4. 设置自动填充字段
第一步 :给需要进行自动填充的字段加上注解 :@TableField()
属性 fill 的值为枚举类 FieldFill,值如下:
1. 默认不做处理:
# DEFAULT
2. 插入时填充字段:
# INSERT
3. 更新时填充字段:
# UPDATE
4. 插入和更新时都填充字段:
# INSERT_UPDATE
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
第二步:填充什么 ?
实现 MetaObjectHandler
接口,并将其注入 Spring。
// MetaObject 参数代表传入的数据,例如:user、order...
// 可以通过 metaObject.setValue(String tableName, Object obj) 给它设置值。
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
// 插入数据自动填充
@Override
public void insertFill(MetaObject metaObject) {
metaObject.setValue("createdTime", LocalDateTime.now());
metaObject.setValue("updateTime", LocalDateTime.now());
}
// 更新数据自动填充
@Override
public void updateFill(MetaObject metaObject) {
metaObject.setValue("updateTime", LocalDateTime.now());
}
}
以后数据库每一次变更(加了 @TableField 注解的)都会经过 insertFill/updateFill 。
5. 设置表名映射
- 单独设置
实体类上加@TableName("tb_user")
来指定表名:
@Data
@TableName("tb_user")
public class User {
private int id;
private String name;
}
- 全局配置
配置文件中加上通用前缀 :
mybatis-plus:
global-config:
db-config:
# 表名前缀
table-prefix: tb_
6. 设置字段映射
指定Java实体类的变量对应数据库哪一个字段。
@TableField
注解的value属性,默认就是value属性,可以不写
@Data
public class User {
// @TableField(value = "userId")
@TableField("userId")
private int id;
private String name;
}
7. 字段名和列名的驼峰映射
数据库中的字段名 :user_name
实体类中的变量名 :userName
mp默认开启驼峰映射,如果需要关闭 :
mybatis-plus:
configuration:
# 关闭驼峰映射
map-underscore-to-case: false
8. 设置主键生成策略
默认情况下主键的生成策略使用mp提供的雪花算法生成的自增id。
- 单独设置
如果需要使用别的策略,在字段上加@TableId
,它通过type属性指定主键生成策略,type的值为枚举类。最后两个策略只有当插入对象的主键位为时才会自动填充。
属性值 | 作用 |
IdType.NONE | 默认,未设置逐渐策略,使用全局策略,默认全局为雪花算法 |
IdType.AUTO | 使用数据库的自动增长策略,每次加一 |
IdType.INPUT | 需要手动设置主键 |
IdType…ASSIGN_UUID | 使用UUID生成随机主键 |
IdType.ASSIGN_ID | mp自带策略,数字类型使用(19位) |
- 全局配置
在配置文件中:
mybatis-plus:
global-config:
db-config:
# mp主键生成策略
id-type: auto/none/input/assign_id/assign_uuid