zoukankan      html  css  js  c++  java
  • mybatisplus----CRUD操作之更新操作(以及日期的自动填充的两种办法)

    更新操作:

        @Test
    //测试更新
        void testUpdate() {
            User user = new User();
            user.setId(5L);
            user.setName("瓜瓜");
            //虽然方法名是一个byId,但是传入的是一个对象
            int len = userMapper.updateById(user);
            System.out.println(len);
            
        }

    自动填充


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


    阿里巴巴开发手册:所有的数据库表: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.hui.handler;
    
    import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
    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...");
            this.setFieldValByName("createTime", new Date(), metaObject);
            this.setFieldValByName("updateTime", new Date(), metaObject);
    
    
        }
    
        @Override //更新时的填充策略
        public void updateFill(MetaObject metaObject) {
            log.info("start update fill...");
            this.setFieldValByName("updateTime", new Date(), metaObject);
    
        }
    }

    测试插入:

    结果:

    测试更新-结果:

    迎风少年
  • 相关阅读:
    python linecache模块 快速读取模块某行
    51单片机扩展protues仿真
    python 字符串过滤技巧 搜索目录
    51单片机(STC89C52RC)光电耦合控制继电器实验
    python 获取当前当前目录 脚本目录 被执行脚本目录
    51单片机(STC89C52RC)EEPROM操作实验
    Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
    Python __getattr__与__setattr__使用方法
    51单片机(STC89C52RC)看门狗设置
    jquery的Dtree树插件简单使用
  • 原文地址:https://www.cnblogs.com/ZYH-coder0927/p/13968885.html
Copyright © 2011-2022 走看看