기술나눔

MybatisPlus는 데이터 삽입/수정 시간 자동 설정을 구현합니다.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

소개

데이터를 삽입하면 현재 시간이 자동으로 설정되고, 데이터가 업데이트되면 날짜가 수정된 날짜로 자동 수정됩니다.

MybatisPlus의 확장 인터페이스 MetaObjectHandler를 사용하세요.

단계

  1. 인터페이스 구현

  2. 엔터티 클래스 주석

인터페이스 구현

package com.example.vueelementson.common;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;

/**
 * @BelongsProject: blog-springboot
 * @BelongsPackage: com.example.vueelementson.common
 * @Author: Zww
 * @CreateTime: 2024-07-07  16:38
 * @Description: TODO
 * @Version: 1.0
 */
@Component
public class ExtraDataHandle implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        // 第一个值填入你要设置的字段名,第二个值为每次自动填充的值
        metaObject.setValue("publishTime", new Date());
        metaObject.setValue("updateTime", new Date());
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

주석 추가

이미지-20240707175012082

그러나 여기의 날짜는 타임스탬프 형식으로 프런트 엔드에 제공됩니다.

이미지-20240707181308362

, 프런트 엔드에 타임스탬프 변환을 위한 js를 추가하고 이를 소개한 후 메소드에서 호출합니다.

JS 타임스탬프를 타임 코드로

// 时间戳:1637244864707
/* 时间戳转换为时间 */
export default {
    timestampToTime(value, type = 0) {
        var time = new Date(value);// 2023-07-07 17:07:44
        var year = time.getFullYear();// 2023年
        var month = time.getMonth() + 1; // 0-11 +1表示1-12月
        var date = time.getDate();// 1-31号
        var hour = time.getHours();// 0-23时
        var minute = time.getMinutes();// 0-59分
        var second = time.getSeconds();// 0-59秒
        month = month < 10 ? "0" + month : month;// 如果小于10的月份,前面补0
        date = date < 10 ? "0" + date : date;
        hour = hour < 10 ? "0" + hour : hour;
        minute = minute < 10 ? "0" + minute : minute;
        second = second < 10 ? "0" + second : second;
        var arr = [
            year + "-" + month + "-" + date,
            year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second,
            year + "年" + month + "月" + date,
            year + "年" + month + "月" + date + "日" + " " + hour + ":" + minute + ":" + second,
            hour + ":" + minute + ":" + second
        ]
        return arr[type];
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

이 js를 사용하세요

이미지-20240707184712328

결과