mybatis_plus实现自动填充和逻辑删除
mybatis_plus实现自动填充和逻辑删除
自定义填充
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; @Component public class MyBatisMetaObjectHandler implements MetaObjectHandler { /** * 自定义插入时填充规则 */ @Override public void insertFill(MetaObject metaObject) { // 注意是类属性字段名称,不是表字段名称 this.setFieldValByName("createTime", new Date(), metaObject);//新增自动填充当前时间 this.setFieldValByName("updateTime", new Date(), metaObject);//新增时自动填充当前时间 this.setFieldValByName("delFlag", 0, metaObject);//新增时候自动填充该标识 this.setFieldValByName("password", "babc156ac796828d0d08625f86f6dc55", metaObject);//默认密码123 } /** * 自定义更新时填充规则 */ @Override public void updateFill(MetaObject metaObject) { // 注意是类属性字段名称,不是表字段名称 this.setFieldValByName("updateTime", new Date(), metaObject);//修改时候自动填充 } }
-
在实体类上添加注解,
//创建时间 @TableField(fill = FieldFill.INSERT) //将会在新增时候填充该字段 private Date createTime; //修改时间 @TableField(fill = FieldFill.UPDATE) //将在修改时候填充该字段 private Date updateTime;
mybatisplus逻辑删除配置
- 配置mybatis_plus
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: auto
logic-delete-value: 1//删除字段变一
logic-not-delete-value: 0 //默认为0
@TableLogic//打开此注解删除时自动修改为0,再次查询自动过滤该条标记数据 @TableField(fill = FieldFill.INSERT)//插入自动填充0 private Integer delFlag;//删除标记