• 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);
    
        }
    }

    测试插入:

    结果:

    测试更新-结果:

    迎风少年
  • 相关阅读:
    数据库设计准则(第一、第二、第三范式说明)
    Linux之chmod使用
    数据备份——PHP
    PHP语言性能优化——少使用魔术方法
    PHP性能之语言性能优化:安装VLD扩展——检测性能
    PHP性能之语言性能优化:安装VLD扩展——检测性能
    PHP性能之语言性能优化:安装VLD扩展——检测性能
    socket、fsockopen、curl、stream 区别
    iOS 下 Podfile 使用方法
    使用 NVM 管理不同的 Node.js 版本
  • 原文地址:https://www.cnblogs.com/ZYH-coder0927/p/13968885.html
Copyright © 2020-2023  润新知