SpringBoot整合MyBatis-Plus实战+自动填充+逻辑删除

262 阅读1分钟

实体类 @Getter @Setter @TableName("user") public class User { @TableId(type = IdType.ASSIGN_UUID) private String id; private String name; private Integer age; private String email;

@TableField(fill = FieldFill.INSERT)
private String deleted;

@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;

@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;

}

配置类 @Configuration @Slf4j public class MyMetaObjectHandler implements MetaObjectHandler { /** * 插入元对象字段填充(用于插入时对公共字段的填充) * * @param metaObject 元对象 */ @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill ...."); this.strictInsertFill(metaObject, "deleted", String.class, "0"); this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); }

/**
 * 更新元对象字段填充(用于更新时对公共字段的填充)
 *
 * @param metaObject 元对象
 */
@Override
public void updateFill(MetaObject metaObject) {
    log.info("start update fill ....");
    this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());

}

private String getUUID() {
    return UUID.randomUUID().toString().replace("-", "");
}

}

配置文件 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.url=jdbc:mysql://localhost:3306/ods?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8 spring.datasource.druid.username=root spring.datasource.druid.password=root logging.level.com.tencent.goff.mapper=trace mybatis-plus.mapper-locations=classpath*:mapper/*Mapper.xml

逻辑删除

mybatis-plus.global-config.db-config.logic-delete-field=deleted mybatis-plus.global-config.db-config.logic-delete-value=1 mybatis-plus.global-config.db-config.logic-not-delete-value=0