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;//删除标记