MyBatisPlus快速入门CRUD拓展更新操作笔记四

//测试更新
@Test
public void testUpdate() {
    User user = new User();
    // 通过条件自动拼接sql;
    user.setId(5L);
    user.setName("狂神666");
    user.setAge(18);
    //注意:updateById 参数是一个对象
    int i = userMapper.updateById(user);
    System.out.println(i);

}

所有的sql都是自动帮你动态配置的 !

自动填充

创建时间、修改时间!这个操作一遍都是自动化完成的 ,我们不希望手动更新 !

阿里巴巴开发手册 : 所有的数据库表 : gmt_create、 gmt_modified几乎所有的表都有配置上 ! 而且需要自动化 !

方式一 : 数据库级别(工作中不允许你修改数据库)

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

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

private Date createTime;
private Date updateTime;

再次更新查看结果即可

方式二 : 代码级别

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

2,实体类属性上需要增加注解

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

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

package com.example.mybatisplus.haandler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

@Slf4j
@Component//一定不要忘记把处理器加到IOC容器中!
public class MyMetaObjectHandler implements MetaObjectHandler {
    //插入时的填充策略
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill.....");
        //setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject)
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
    //更新时的填充策略
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("start insert fill.....");
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
}

4,测试插入

5,测试更新,观察时间即可 !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值