小編給大家分享一下MyBatis-Plus如何修改和添加自動填充時間,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
`valid_verify_time` datetime DEFAULT NULL COMMENT '有效性審核時間',
@JsonSerialize:序列化
@JsonDeserialize:反序列化
LocalDateTimeSerializer:JDK時間序列化規則
@ApiModelProperty(value = "有效性審核時間") @TableField(fill = FieldFill.UPDATE, update = "now()") @JsonSerialize(using = LocalDateTimeSerializer.class) @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime validVerifyTime;
打印出來的SQL
一般實體類最后都會帶有createTime和updateTime但我希望讓它是自動更新的,由于mybatisplus的sql是看不到的, 但又不想自己重寫sql。于是解決方法來了!用它自帶的字段自動填充功能!
@Data @TableName("mmall_user") public class User { @TableId private int id; private String username; private String password; private String email; private String phone; private String question; private String answer; private int role; @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; }
這個是自增策略,我希望createTime只是在插入的時候會自動賦值,而updateTime是插入和更新的時候自動賦值一共是有一下幾種:
1.
創建如圖所示的類
代碼如下:
@Component @Slf4j public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("start insert field...."); this.setFieldValByName("createTime", LocalDateTime.now(),metaObject); this.setFieldValByName("updateTime", LocalDateTime.now(),metaObject); } @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("updateTime", LocalDateTime.now(),metaObject); } }
第一個是字段name,第二個是value,第三個照著寫
我這里用的:
用String是無法填充的!類型不匹配
這張圖是數據庫類型和java類型對應關系。
當然你的數據庫這里用timestamp和datetime都是可以的
看完了這篇文章,相信你對“MyBatis-Plus如何修改和添加自動填充時間”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。