mysql时间自动填充_使用java自动填充,实现mysql的创建修改时间的自动填充

一、首先我们需要在表上创建相应的字段

3d20d3fe42f3e3ee37dec4ffab2a2b8c.png

1:值得注意的是这个类型,datetime,还有别的操作时间的类型,这个区别还是有一点,详细可以百度一下,此处就不写了

二、标准的java实体映射类肯定是需要的

34d4a87f74be3b11ef08d7101434491b.png

1:这第一个注解:@DateTimeFormat,就是指定这个时间格式,这个与上述的datetime还是有一点关系的,可以自己百度,尝试一下别的

2:关键是第二个注解:@TableField,相当于表达这是什么操作,然后与下文形成对应

3:注意:!!!! 此处的Date 是java.util.Date,不要导sql的包,sql也有一个Date,具体我也没研究为啥,如果导了这个sql包,会报错

三、注解有了还不行,还要做最后一步,实现MetaObjectHandler接口

435735cbca254ae28415a0517fc98c3a.png

1:此处需要注意,需要交给spring容器管理

2:实现这个接口的两个方法,insertFill和updateFill

3:测试即可实现自动填充,当然,既然是自动填充,所以我们不需要传值

四、如果出现时间点不一样的情况,一般是差8个小时[东八区],那么这个时候,我们就需要添加一点配置

spring: datasource:

driver-class-name: com.mysql.jdbc.Driver

username: root

password: root

#关键操作,数据库名后面添加:?serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&characterEncoding=UTF-8

url: jdbc:mysql://192.168.27.212:3306/mydata?serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&characterEncoding=UTF-8

jackson:

#时间的格式

date-format: yyyy-MM-dd HH:mm:ss

#时间+8小时

time-zone: GMT+8

五、如果测试还是不行,配置文件不起作用,那就只能写死时间,使用时间的工具类【此操作可能导致多台设备添加的时间不一致,谨慎使用】

1、引入依赖

joda-time

joda-time

2、在实现MetaObjectHandler接口的类中,要把new Date();改掉

1 @Component2 public class MyObjectHandler implementsMetaObjectHandler {3 @Override4 public voidinsertFill(MetaObject metaObject) {5 /**

6 * fieldName:实体映射类的属性名7 * 第二个参数:属性值8 * 第三个:元数据对象9 * DateTime.now().plusHours(13).toDate():时间+13小时,10 * 这个13小时只是我这里差的值,差多少改多少11 */

12 this.setFieldValByName("createTime", DateTime.now().plusHours(13).toDate(),metaObject);13 this.setFieldValByName("updateTime",DateTime.now().plusHours(13).toDate(),metaObject);14 }15

16 @Override17 public voidupdateFill(MetaObject metaObject) {18 this.setFieldValByName("updateTime",DateTime.now().plusHours(13).toDate(),metaObject);19 }20 }

六、以上的写死时间的操作,纯属个人娱乐操作,没有实际应用意义,只有配置文件生效的那个操作,才是最好的操作,传值的时候,什么都不需要写,对象传值的话,直接忽略它就好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值