1、实现数据库时间字段自动填充当前时间
/**
* 时间填充器:
* @author solafish
* @since 2021-10-29
* 实现数据库时间字段的自动填充当前时间
*/
@Component
public class DateMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
//2、filedName参数要是实体类中属性名,不是数据库字段名
//1、数据库时间类型是datetime,实体类和时间函数要用LocalDateTime,date类型则用new Date()
this.setFieldValByName("createTime", LocalDateTime.now(),metaObject);
// this.setFieldValByName("updateTime", LocalDateTime.now(),metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",LocalDateTime.now(),metaObject);
}
}
2、自动写入数据库的时间和真实事件查了8h,或非24h制
解决办法:修改配置文件,连接数据库的配置后面追加:serverTimezone=GMT%2B8
spring:
main:
allow-circular-references: true
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
# serverTimezone=GMT%2B8可以让自动插入数据库的时间是24小时制,保证时间准确
url: jdbc:mysql://11.11.11.11:3306/database?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
username: root
password: root