一:通过数据库自身实现

1 、创建表的时候加上  create_time  与   update_time 两个字段

  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
2、若表已经存在,这两个字段不存在,则添加这两个字段
ALTER TABLE `table_name`
ADD COLUMN  `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';ALTER TABLE `table_name`
ADD COLUMN `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间' 

3、若表与这两个字段均存在,但字段不是自动获取数据库时间,则修改字段

ALTER TABLE `table_name`
MODIFY COLUMN  `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';ALTER TABLE `table_name`
MODIFY COLUMN `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间' 

4、可以使用可视化工具设置,以navicat为例

1)鼠标右键 设计表

2)选择添加字段,字段名为 create_time ,类型为 timestamp,默认 CURRENT_TIMESTAMP

3)选中根据当前时间戳更新

二:通过mybatisplus的TableField注解添加

1)在实体类上的createTime与updateTime上添加注解:

    @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime;@TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime;

2)自定义元数据对象处理器继承MetaObjectHandler接口,实现insertFill与updateFill方法,这两个接口类似拦截器,在执行数据库insert与update操作的时候自动执行这两个方法,因此如果有创建人与修改人等需要自动创建修改的字段也可以在其中添加

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.time.LocalDateTime;/*** 自定义元数据对象处理器*/
@Component
@Slf4j
public class MyMetaObjecthandler implements MetaObjectHandler {/*** 插入操作,自动填充* @param metaObject*/@Overridepublic void insertFill(MetaObject metaObject) {log.info("公共字段自动填充[insert]...");metaObject.setValue("createTime", LocalDateTime.now());metaObject.setValue("updateTime",LocalDateTime.now());     }/*** 更新操作,自动填充* @param metaObject*/@Overridepublic void updateFill(MetaObject metaObject) {log.info("公共字段自动填充[update]...");metaObject.setValue("updateTime",LocalDateTime.now());       }
}

三:若时间与当前时间相差8小时,则在my.conf文件中的[mysqld]节点设置时区参数

default-time-zone=Asia/Shanghai

若是5.7版本则是如下配置

default-time-zone = '+8:00'

如果mysql是docker创建的,则需要调整mysql容器内的系统日期时间

//1、把当前宿主机的时区信息复制到mysql容器的时区中
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器名称或Id:etc/localtime//2、重启mysql服务即可
docker restart 容器名称或Id

java实现mysql自动更新创建时间与更新时间的两种方式相关推荐

  1. mysql 停从库_MySQL_通过两种方式增加从库——不停止mysql服务,一般在线增加从库有两种方式 - phpStudy...

    通过两种方式增加从库--不停止mysql服务 一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长 ...

  2. Java面试题:synchronized和对象的访问定位的两种方式

    说一说自己对于 synchronized 关键字的理解 ? synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者 代码块在任意时 ...

  3. java native函数库_Java 层调用 Native 层函数的两种方式

    概述 Java 层如何调用Native层函数,大家都应该知道使用JNI(Java 本地接口). 通过在java层声明native方法,然后遵守JNI规范命名Native函数,即可建立Java层nati ...

  4. java并行任务,Java 并发编程学习(五):批量并行执行任务的两种方式

    Java 并发编程学习(五):批量并行执行任务的两种方式 背景介绍 有时候我们需要执行一批相似的任务,并且要求这些任务能够并行执行.通常,我们的需求会分为两种情况: 并行执行一批任务,等待耗时最长的任 ...

  5. Java通过图片url地址获取图片base64位字符串的两种方式

    工作中遇到通过图片的url获取图片base64位的需求.一开始是用网上的方法,通过工具类Toolkit,虽然实现的代码比较简短,不过偶尔会遇到图片转成base64位不正确的情况,至今不知道为啥. 之后 ...

  6. [Java中实现Excel表导入导出]基于easy-poi和EasyExcel两种方式实现

    第一种:基于easy-poi实现Excel导入导出 1.导出Excel表格 第一步:在pom文件中导入依赖 <!--基于easy-poi实现Excel导入导出--><dependen ...

  7. java调用外联服务用xml,Spring IOC 依赖注入的两种方式:XML和注解

    IoC,直观地讲,就是容器控制程序之间的关系,而非传统实现中,由程序代码直接操控.这也就是所谓"控制反转"的概念所在.控制权由应用代码中转到了外部容器,控制权的转移是所谓反转.Io ...

  8. ubuntu 安装java jdk_「ubuntu安装jdk」Ubuntu安装jdk8的两种方式 - seo实验室

    ubuntu安装jdk 安装方式: 1):通过ppa(源) 方式安装. 2):通过官网安装包安装.JDK官网下载地址 一:使用ppa(源)方式安装: 1):添加ppa源sudo add-apt-rep ...

  9. crontab用法 时间配置_Linux指定的时间运行自定义命令的两种方式

    如何在Linux中在指定的时间运行自定义命令 不知道大家有没有这样类似的经历,使用诸如rsync将一个大文件传输到局域网的另一个系统. 由于文件比较大,耗费的时间可能达到小时级别.这时我们可能就会想能 ...

  10. 8 时间转指定时区的时间_Linux指定的时间运行自定义命令的两种方式

    如何在Linux中在指定的时间运行自定义命令 不知道大家有没有这样类似的经历,使用诸如rsync将一个大文件传输到局域网的另一个系统. 由于文件比较大,耗费的时间可能达到小时级别.这时我们可能就会想能 ...

最新文章

  1. 燃爆了!天猫联合天一广场搞事情,800万宁波人坐不住了
  2. spring cloud 熔断_Spring Cloud 熔断器/断路器 Hystrix
  3. Please move ‘proctime(r_proctime)‘ to the end of the schema.以及rowtime和proctime
  4. 5. 深入研究 UCenter API 之 MVC 网站下的用法(转载)
  5. 2017蓝桥杯省赛---java---C---1(外星日历)
  6. [Bzoj4540][Hnoi2016] 序列(莫队 + ST表 + 单调队列)
  7. android studio 制作表格_红爆网络的旅游排行榜视频制作其实很简单,赶快动手尝试...
  8. Python的解析式与生成器
  9. java process 中断_从Java运行外部程序,读取输出,允许中断
  10. 食谱数据库数据找不到的问题
  11. python全栈开发工程师_老男孩Python高级全栈开发工程师三期完整无加密带课件(共104天)...
  12. 理解Memory Barrier(内存屏障)
  13. Excel查看工作表有多少列
  14. 纯CSS简单实现漂亮的timeline时间轴效果(样式1)
  15. 详解FindBugs的各项检测器
  16. matlab的simulink中的normal模式acclerator等模式的选择方法
  17. polyfit多项式拟合函数的用法
  18. 中粮集团-“我买网”领导说了:
  19. 深度学习之目标检测与目标识别
  20. oracle分布式数据库版本,去O路上的历程--开源分布式数据库产品对比(TBase VS AntDB)...

热门文章

  1. 浮点数转十六进制,实用!!!
  2. 如何用JAVA写acm_用java来写ACM
  3. DBeaver修改默认存储sql文件的位置
  4. 怎么运行c语言程序,如何使用C语言进行编程操作,教程在这里,C语言编程快速入门...
  5. 在HTML中可以链接Word文档吗,网页用word打开-可以直接打开word文件的超链接在网页中, – 手机爱问...
  6. 【前端之旅】HTML大总结
  7. 使用 HeadSpin BYOD 进行现场测试
  8. 【Vue3】利用watchEffect的清除副作用实现一个防抖函数
  9. PTA“值班安排”的题没有思路?速来,这里有附带详细注释的代码!
  10. 使用计算机打印资料时需要安装打印机驱动,安装打印机驱动时提示确认打印机已连接的问题分析及解决办法...