1. 程式人生 > 實用技巧 >MybatisPlus 自動填充

MybatisPlus 自動填充

自動填充

1.在java實體檔案屬性中增加自動填充的時機

file:自動填充的時機

/** * 預設不處理/ DEFAULT, /* * 插入填充欄位/ INSERT, /* * 更新填充欄位/ UPDATE, /* * 插入和更新填充欄位 */ INSERT_UPDATE

  //建立時間
    @TableField(fill=FieldFill.INSERT)
    private LocalDateTime createTime;
   
    
    //更新時間
    @TableField(fill=FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    

配置自動填充處理器


import java.time.LocalDateTime;

import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

	/**
	 * 建立時自動填充
	 * @Description: TODO(這裡用一句話描述這個方法的作用)   
	 * @param: @param metaObject         
	 * @throws
	 */
	@Override
	public void insertFill(MetaObject metaObject) {
		System.out.println("insert 自動填充");
		//如果實體中有建立時間屬性才會進行自動填充
		boolean b=metaObject.hasSetter("createTime");
		if(b){
			
		//createTime 為Java實體物件屬性
		setInsertFieldValByName("createTime", LocalDateTime.now(), metaObject);
		setInsertFieldValByName("updateTime", LocalDateTime.now(), metaObject);
		}

	}

	/**
	 * 更新時自動填充
	 * @Description: TODO(這裡用一句話描述這個方法的作用)   
	 * @param: @param metaObject         
	 * @throws
	 */
	@Override
	public void updateFill(MetaObject metaObject) {
		System.out.println("update 自動填充");
		setUpdateFieldValByName("updateTime", LocalDateTime.now(), metaObject);
	}

	
}


來源:站長資訊中心