Mybatisplus自動填充實現(xiàn)方式及代碼示例
數(shù)據(jù)庫表的創(chuàng)建時間、修改時間,這些個操作一遍都是自動化完成的,我們不希望手動更新。這時候自動填充便可以發(fā)揮作用了。
1、方式一
數(shù)據(jù)庫級別(注意:不建議此方式,因為工作中不允許你修改數(shù)據(jù)庫)
步驟
在表中新增字段create_time, update_time,給字段賦予默認(rèn)值,在需要更新的字段(update_time)選擇更新
在實體類增加對應(yīng)屬性
2、方式二
代碼級別,建議使用
步驟
在實體類需要自動填充的屬性上加注解
package com.yl.bean; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.Date; /** * 用戶實體類 */ @Data @NoArgsConstructor public class User implements Serializable { @TableId(type=IdType.AUTO) private Integer id; private String name; private Integer age; private String email; @TableField(fill = FieldFill.INSERT )//插入數(shù)據(jù)時更新該字段 private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE)//插入和修改時更新該字段 private Date updateTime; }
注意:數(shù)據(jù)庫要有對應(yīng)字段,不會自動給你生成字段
編寫處理器來處理自動填充注解
package com.yl.handler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; /** * 自動填充處理器實現(xiàn)類 */ @Slf4j//配置日志輸出,也可以不配置 @Component public class MyMetaObjectHandler implements MetaObjectHandler { /** * 插入元對象字段填充(用于插入時對公共字段的填充) * * @param metaObject 元對象 */ @Override public void insertFill(MetaObject metaObject) { //日志輸出 log.info("start insert fill....."); //字段填充 this.setFieldValByName("createTime",new Date(),metaObject); this.setFieldValByName("updateTime",new Date(),metaObject); } /** * 更新元對象字段填充(用于更新時對公共字段的填充) * * @param metaObject 元對象 */ @Override public void updateFill(MetaObject metaObject) { //日志輸出 log.info("start update fill....."); //字段填充 this.setFieldValByName("updateTime",new Date(),metaObject); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- mybatisplus?實現(xiàn)接口MetaObjectHandler自動填充字段值
- mybatisplus實現(xiàn)自動填充時間的項目實踐
- MybatisPlus自動填充創(chuàng)建(更新)時間問題
- MybatisPlus字段自動填充失效,填充值為null的解決方案
- mybatisplus自動填充屬性值的實現(xiàn)步驟
- mybatisPlus自動填充更新時間的示例代碼
- MybatisPlus 插入或更新數(shù)據(jù)時自動填充更新數(shù)據(jù)解決方案
- 在MyBatisPlus中使用@TableField完成字段自動填充的操作
- MybatisPlus 自動填充的實現(xiàn)
- MyBatisPlus實現(xiàn)自動填充字段的實踐
相關(guān)文章
客戶端Socket與服務(wù)端ServerSocket串聯(lián)實現(xiàn)網(wǎng)絡(luò)通信
這篇文章主要為大家介紹了客戶端Socket與服務(wù)端ServerSocket串聯(lián)實現(xiàn)網(wǎng)絡(luò)通信的內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03java Socket實現(xiàn)簡單模擬HTTP服務(wù)器
這篇文章主要介紹了java Socket實現(xiàn)簡單模擬HTTP服務(wù)器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05Java的外部類為什么不能使用private和protected進(jìn)行修飾的講解
今天小編就為大家分享一篇關(guān)于Java的外部類為什么不能使用private和protected進(jìn)行修飾的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04