MybatisPlus实现插入或更新数据时,自动生成时间戳功能

数据库表对应字段的类型应该是 DateTime 或者 timestamp

我需要在插入或更新数据时,为create_time字段自动生成时间戳

只需下面两步即可完成:

1.在pojo类中,需要生成时间戳的字段上设置如下两个注解

    //字段  字段添加填充内容
@TableField(value = "create_time",fill =FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;

其中@TableField注解中value对应的是表中的create_time字段,如果pojo类的字段名与表中字段名相同,mybatis-plus会自动进行映射,该配置可以省略,fill 这个填充配置有多种策略可选:

INSERT_UPDATE:在更新与插入时进行填充,其余的大家应该可以举一反三了吧。

@JsonFormat定义了时间戳的格式类型,后面的timezone为时间戳设置了时区

以上第一步就完成了,只要添加两个注解就搞定。

2.第二步,实现MetaObjectHandler接口完成自定义填充逻辑定义

定义一个类实现MetaObjectHandler接口

package com.mao.util;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date; /**
* @author mm
* @description 新增与修改数据时自动生成时间戳
* @date 2022-11-10 00:36
*/
// 将实现类注入到springboot容器中
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
// createTime 这个字段与pojo类中字段对应
this.setFieldValByName("createTime",new Date(),metaObject);
} @Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("createTime",new Date(),metaObject);
}
}

测试结果:

在插入数据时,无需设置时间戳,mybatis-plus会自动为我们生成

————————————————

原文链接

MybatisPlus实现插入或更新数据时自动生成时间戳的更多相关文章

  1. FreeSql (十二)更新数据时指定列

    var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initia ...

  2. FreeSql (十三)更新数据时忽略列

    var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initia ...

  3. MySql LAST_INSERT_ID 【插入多条数据时】

    LAST_INSERT_ID 自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里 The ID that was generat ...

  4. mybatis 注解的方式批量插入,更新数据

    一,当向数据表中插入一条数据时,一般先检查该数据是否已经存在,如果存在更新,不存在则新增  使用关键字  ON DUPLICATE KEY UPDATE zk_device_id为主键 model  ...

  5. mongoose 更新数据时不验证数据(忽略设定的集合规则)的问题

    问题: mongoose 更新数据时不验证数据(忽略设定的集合规则)的问题 参考: http://www.mongoosejs.net/docs/api.html#updateone_updateOn ...

  6. 关于angularJS绑定数据时自动转义html标签

    关于angularJS绑定数据时自动转义html标签 angularJS在进行数据绑定时默认是会以文本的形式输出,也就是对你数据中的html标签不进行转义照单全收,这样提高了安全性,防止了html标签 ...

  7. 在Oracle中更新数据时,抛出:ORA-01008: not all variables bound

    在Oracle中更新数据时,抛出了一个 :ORA-01008 not all variables bound, 我的理解是不是所有的变量/参数都有边界,不懂: 后来知道了,原来是“不是所有变量/参数都 ...

  8. Cassandra1.2文档学习(10)—— 插入和更新数据

    参考数据:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_ ...

  9. 使用SQLServer2005插入一条数据时返回当前插入数据的ID

    使用SQLServer2005插入一条数据时返回当前插入数据的ID 在执行完插入后 再执行 select @@identity from users 就OK 就是刚才插入的那行的 ID了 补充: @@ ...

  10. SQL中使用UPDATE更新数据时一定要记得WHERE子句

    我们在使用 SQL 中的 UPDATE 更新数据时,一般都不会更新表中的左右数据,所以我们更新的数据的 SQL 语句中会带有 WHERE 子句,如果没有WHERE子句,就回更新表中所有的数据,在 my ...

随机推荐

  1. 昨晚接收的俄罗斯Meteor-M2气象卫星云图,接收质量还可以!

    接收设备: 天馈:自制四臂螺旋天线 硬件:SDRsharp 跟踪:Orbitron.SDRSharpDriverDDE 频率:137.1MHZ 解码:SDRSharp.QPSK.M2_LRPT_Dec ...

  2. 查看nginx版本号的几种方法

    1. 查看服务器上安装的nginx版本号,主要是通过nginx的-v或-V选项,查看方法如下图所示      -v 显示 nginx 的版本.      -V 显示 nginx 的版本,编译器版本和配 ...

  3. 利用AI增强VS Code TypeScript插件:AnyToTS带来编程新体验

    Any to TS: VSCode 扩展插件 概述 "Any to TS" 是一个强大的 VSCode 扩展插件,旨在将任何对象转换为 TypeScript 类型或接口.该工具基于 ...

  4. 适配器设计模式--java进阶day03

    1.设计模式 通俗来讲,设计模式就是其他程序员遇到某些问题时的解决经验,我们学习设计模式,在遇到了同样的问题后便可解决 2.适配器设计模式 有人可能会感到疑惑,接口和实现类会有什么问题,我们举两个例子 ...

  5. 使用 gitee 托管你的 go 模块

    前言 实话实说, github 作为这个球上顶级的代码托管平台, 公司/企业/开发者的认可和参与度是非常高的. 但是因为某些原因 特色墙, 国内使用 github 的体验不是非常好 速度慢 不靠谱同学 ...

  6. 使用CAMEL实现RAG过程记录

    本文为学习使用CAMEL实现RAG的学习总结. 参考自官方cookbook,地址:https://docs.camel-ai.org/cookbooks/advanced_features/agent ...

  7. 🔥吐血整理 Bolt.diy 部署与应用攻略

    1.前言 以前总是有很多人无代码基础的人总是在幻想,如何不要自己写代码就可以建立一个自己的创意网站呢?之前总觉得异想天开不可能,屏幕前的你是不是也是这么想的呢,没有想到,Bolt.diy帮你实现了,快 ...

  8. 在win nginx下配置symfony3.4,并隐藏项目名称 .php入口

    在win nginx下配置symfony3.4,并隐藏项目名称 .php入口   记录下 # power by www.php.cn #user nobody; worker_processes 1; ...

  9. 2025dsfz集训Day3:DFS搜索与剪枝

    DAY3: DFS搜索与剪枝 \[Designed\ By\ FrankWkd\ -\ Luogu@Lwj54joy,uid=845400 \] 特别感谢 此次课的主讲 - Kwling 深搜 深度优 ...

  10. Windows系统优化 3-清理预安装软件

    事件起因: 经过我们上次 Windows系统优化 2-系统设置优化 之后,现在电脑已经基本上可以使用,不过对于有强迫症的我来说还差了一步,那就是系统预安装的软件: 对于我们刚入手的电脑你是否有 这些 ...