mybatis-plusフィールドの作成時間と変更時間を自動的に入力する方法

2336 ワード

前言
アリババ開発マニュアルによると、表には3つのフィールドが必要です:id,create_time, update_timeは、作成時間と変更時間の2つの方法で生成できます.データベースレベルとコードレベルです.
オートフィル
データベース・レベルのデータベース・レベルでは、テーブルを設計するときに、あるフィールドに対して更新ポリシーを設定できます.たとえば、レコードが追加されると、自動的に作成時間を現在の時間に設定できます.このレコードが変更されると、更新時間が現在の時間に自動的に設定されます.ただし,データベースの設計は非常に重要であるため,開発過程でデータベース構造を勝手に変更することはできないため,この方法は考慮しない.
コードレベル
コードレベルでは、作成時間と修正時間をコードで埋め込むことです.次に、Mybatis-plusでのこの機能の使用について説明します.
1.フィールドcreate_を含むテーブルを作成します.timeとupdate_time、フィールドのタイプは:datetime
2.springbootのpomファイルにmybatis-plusの依存を導入する

    com.baomidou
    mybatis-plus-boot-starter
    3.2.0


3.1つのプロジェクトでは、多くのエンティティークラスがあり、エンティティークラスで属性の作成時間と更新時間を構成し、属性に@Tableフィールド注記を追加します.
@ApiModelProperty(value = "    ")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
   
@ApiModelProperty(value = "    ")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;

4.注記@Table Fieldでのfillの詳細
(1)fill(フィールド埋め込みポリシー)は、列挙タイプであり、必ずしも指定する必要はなく、デフォルトはFieldFillである.DEFAULT
(2)FieldFill
DEFAULT:INSERTを処理しないデフォルト:挿入時にフィールドUPDATEを塗りつぶす:更新時にフィールドを塗りつぶすINSERT_UPDATE:フィールド5を挿入、更新する.プロセッサHandlerを作成してオートフィルを行い、以下のコードを自分のhandlerパッケージに直接書けばよい
package com.water76016.ourtask.config.security.handler;
   
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
   
/**
 * @program: our-task
 * @description:                         
 * @author: water76016
 * @create: 2020-11-24 10:53
 **/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    /**
     *         
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime", new Date(), metaObject);
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
   
    /**
     *         
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
}

ソース:https://www.tuicool.com/articles/QveAVr6