MybatisPlus自动填充(建立、更新时间)

准备 

1、建立user表

DROP TABLE IF EXISTS user;

CREATE TABLE user
(
    id BIGINT(20) NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (id)
);

 2、插入样例数据

INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
方式一:数据库级别(工作中不允许你修改数据库)

1、在表中新增字段 create_time, update_time 

 2、测试插入方法,我们需要先把实体类同步!

原实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

加入

private Date createTime; //java.util.Date
private Date updateTime;
3 、更新查看结果即可
更新前

 执行更新操作(更新id为5的age)

@Test
void testUpdate(){
    User user = new User();
    user.setId(5L);
    user.setAge(20);
    userMapper.updateById(user);
}

更新后

 方式二:代码级别

1、删除数据库的默认值、更新操作!

 

2、实体类字段属性上需要增加注解

// 字段添加填充内容 
@TableField(fill = FieldFill.INSERT) 
private Date createTime; 
@TableField(fill = FieldFill.INSERT_UPDATE) 
private Date updateTime;

 3、编写处理器来处理这个注解即可!

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("insertFill start ...");

        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("updateFill start ...");

        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
}
4 、测试插入
        
5 、测试更新、观察时间即可!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值