一.逻辑删除
1.实体类添加
/**
* 0 正常 1 删除
*/
@TableLogic
private Integer deleted;
2.配置文件添加
mybatis-plus.global-config.db-config.logic-delete-value = 1
mybatis-plus.global-config.db-config.logic-not-delete-value = 0
3.添加配置的类
@Configuration
@MapperScan(value = {"com.zjy.community.developercenter.dao.*"})
public class MybatisPlusConfig {
/**
* 逻辑删除例子
*
* @return
*/
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector();
}
}
二.更新时间
1.实体类添加
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 修改时间
*/
@TableField(fill = FieldFill.UPDATE)
private Date modifyTime;
1.配置类添加
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(MyMetaObjectHandler.class);
//insert操作时要填充的字段
@Override
public void insertFill(MetaObject metaObject) {
//LOGGER.info("start insert fill ...");
//根据属性名字设置要填充的值
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("modifyTime", new Date(), metaObject);
}
//update操作时要填充的字段
@Override
public void updateFill(MetaObject metaObject) {
//LOGGER.info("start insert fill ...");
this.setFieldValByName("modifyTime", new Date(), metaObject);
}
}
三、主键id生成策略
@TableId(value = "id", type = IdType.ID_WORKER)
private Long id;
public enum IdType {
/**
* 数据库ID自增
*/
AUTO(0),
/**
* 该类型为未设置主键类型
*/
NONE(1),
/**
* 用户输入ID
* 该类型可以通过自己注册自动填充插件进行填充
*/
INPUT(2),
/* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
/**
* 全局唯一ID (idWorker)
*/
ID_WORKER(3),
/**
* 全局唯一ID (UUID)
*/
UUID(4),
/**
* 字符串全局唯一ID (idWorker 的字符串表示)[默认策略]
*/
ID_WORKER_STR(5);
}
四、更新为空
@TableField(strategy = FieldStrategy.IGNORED)
private String appName;
五、慢性能分析
//Spring boot方式
@EnableTransactionManagement
@Configuration
@MapperScan("com.baomidou.cloud.service.*.mapper*")
public class MybatisPlusConfig {
/**
* SQL执行效率插件
*/
@Bean
@Profile({"dev","test"})// 设置 dev test 环境开启
public PerformanceInterceptor performanceInterceptor() {
return new PerformanceInterceptor();
}
}
ps
更多使用方法参考:https://mp.baomidou.com/guide/