mybatisPlus自动填充更新时间的示例代码

1.实体类上的注解

@NoArgsConstructor
@AllArgsConstructor
@Data
public class User {

    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}

2.对注解的处理

@Component
@Slf4j
public class MyDetaObjectHander implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("come to 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("come to update fill .......");

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

    }
}

3.进行添加和修改测试

 //添加用户
    @Test
    public void addUser(){
        User user = new User();
        user.setAge(23);
        user.setEmail("168@qq.com");
        user.setName("gwq");
        int insert = userDao.insert(user);
        System.out.println(insert);
    }
    @Test
    public void update(){
        User user = new User();
        user.setAge(23);
        user.setEmail("168@qq.com");
        user.setName("gwq");
        user.setId(1299641789988229125L);

        int i = userDao.updateById(user);
        System.out.println(i);
    }

到此这篇关于mybatisPlus自动填充更新时间的文章就介绍到这了,更多相关mybatisPlus自动填充更新时间内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 在MyBatisPlus中使用@TableField完成字段自动填充的操作

    场景 官方文档: 字段注解 @TableField com.baomidou.mybatisplus.annotations.TableField 值 描述 value 字段值(驼峰命名方式,该值可无) update 预处理 set 字段自定义注入 condition 预处理 WHERE 实体条件自定义运算规则 el 详看注释说明 exist 是否为数据库表字段( 默认 true 存在,false 不存在 ) strategy 字段验证 ( 默认 非 null 判断,查看 com.baomido

  • MybatisPlus 自动填充的实现

    一.设置填充时机 使用下面的注解设置填充的时机,例如insert .update语句 @TableField(fill = FieldFill.INSERT) 有下面4种规则 源码 /** * 字段填充策略枚举类 * * <p> * 判断注入的 insert 和 update 的 sql 脚本是否在对应情况下忽略掉字段的 if 标签生成 * <if test="...">......</if> * 判断优先级比 {@link FieldStrateg

  • Mybatisplus自动填充实现方式及代码示例

    数据库表的创建时间.修改时间,这些个操作一遍都是自动化完成的,我们不希望手动更新.这时候自动填充便可以发挥作用了. 1.方式一 数据库级别(注意:不建议此方式,因为工作中不允许你修改数据库) 步骤 在表中新增字段create_time, update_time,给字段赋予默认值,在需要更新的字段(update_time)选择更新 在实体类增加对应属性 2.方式二 代码级别,建议使用 步骤 在实体类需要自动填充的属性上加注解 package com.yl.bean; import com.baom

  • MybatisPlus 插入或更新数据时自动填充更新数据解决方案

    目录 解决方案 1. 实体类 2.拦截器MetaObjectHandler 3.测试 参考文章 Maven <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/>

  • mybatisPlus自动填充更新时间的示例代码

    1.实体类上的注解 @NoArgsConstructor @AllArgsConstructor @Data public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; @TableField(fill = FieldFill.INSERT) private Date createTime; @Ta

  • 关于mybatis-plus逻辑删除自动填充更新时间的问题

    目录 前言 问题发现 寻找原因 解决方法 方法一 方法二 补充写法 前言 mybatis-plus是对mybatis的增强,mybatis-plus更像是面向对象编程,数据库基本CRUD的操作可以不用手动编写SQL语句,大大提高了开发的效率. mybatis-plus有一个扩展功能:自动填充.此功能常见的应用场景为,插入数据的时候自动添加创建时间.创建人.修改时间.修改人.删除标记.通过实现MetaObjectHandler接口,重写insertFill.updateFill方法,当我们插入和修

  • Mybatis-Plus自动填充更新操作相关字段的实现

    在阿里开发手册的建表规约中有说明,数据库表中应该都要有create_time.update_time字段:那么在开发中,对于这些共有字段的处理应该要进行统一,这样就可以简化我们的开发过程.那么本文就对Mybatis-Plus中的字段自动填充进行记录. 场景介绍 在项目的数据表设计中,每张表都有create_id.create_time.update_id.update_time这四个字段,那么在Java应用中,针对新增和修改操作要对这四个字段进行相应的更改: create_id.update_i

  • Django 实现Admin自动填充当前用户的示例代码

    model.py import datetime from django.contrib.auth.models import User from django.db import models class Entry(models.Model): title = models.CharField(max_length=250) slug = models.SlugField() pub_date = models.DateTimeField(default=datetime.datetime.

  • Mybatis-plus实现主键自增和自动注入时间的示例代码

    mybatis-plus依赖导入 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> 建议使用3.3.0后的版本. 导入mybatis-plus就不用导入mybatis了,冲突! 连接数据库 sp

  • mybatis-plus自动填充插入更新时间有8小时时差

    今天使用mybatis-plus自动填充插入和更新时间有8小时时差 后来发现只需要修改一下mybaits连接的url即可 原先我是用的 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/gulischool?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: root passw

  • MP(MyBatis-Plus)实现乐观锁更新功能的示例代码

    实现步骤 step1:添加乐观锁拦截器 MP的其他拦截器功能可以参考官网 @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); return int

  • Mybatis-plus自动填充不生效或自动填充数据为null原因及解决方案

    目录 问题一:自动填充的数据为null 问题二:使用mybatis-plus的乐观锁后发现自动填充的updateTime字段不自动填充了 小结 昨天使用mybatis-plus.使用自动填充后发现了两个问题. 一个是填充数据为null, 一个是当使用了mybatis-plus的乐观锁,自动填充就失效了 开始在网上看,有人说是mybatis的bug,我想不会我这么快就遇到了bug.后面我通过idea的(ctrl+B)看他的源码.发现这不是bug,而是一个非常巧妙的设计,当然也可能是之前有bug,我

  • 实例详解MyBatis-plus自动填充功能

    目录 什么是自动填充 1.这个功能是做什么的呢? 2.下面用一个例子来学习这个功能 3.测试 4.结果 什么是自动填充 有些表中会有更新时间.创建时间.更新人或者创建人这些字段. 每次对数据进行新增.删除.修改时都需要对这些字段进行设置.传统的做法是在进行这些操作前,对Entity的字段进行set设置,然后再进行操作.这种做法不仅容易忘记导致出错.而且代码会显得特别冗余. 虽然新增时间和修改时间可以使用数据库的时间,但是新增人和修改人就不能使用这样的功能. 所以MP就提供自动填充的功能,帮助自定

随机推荐