mybatisplus的公共字段插入的實(shí)現(xiàn)
Mybatis的公共字段插入的實(shí)現(xiàn),具體內(nèi)容如下所示:
公共的基礎(chǔ)類
package com.yss.common.domain; 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 com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import java.util.Date; /** * @author wyy * @version 1.0 * @date 2020/11/5 13:23 */ @Data public abstract class BasicEntity <T extends Model<?>> extends Model<T> { @TableId(value = "ID",type = IdType.ASSIGN_ID) private String id; @TableField(value = "CREATOR_ID",fill = FieldFill.INSERT ) private String creatorId; @TableField(value = "CREATOR",fill = FieldFill.INSERT) private String creator; @TableField(value = "CREATETIME",fill = FieldFill.INSERT) private Date createTime; @TableField(value = "MODIFY_ID",fill = FieldFill.UPDATE) private String modifyId; @TableField(value = "MODIFY_BY",fill = FieldFill.UPDATE) private String modifyBy; @TableField(value = "MODIFYTIME",fill = FieldFill.UPDATE) private Date modifyTime; @TableField("DELETED") private int deleted; }
該類定義了主要基于泛型,以及公共插入(createor/creatorid)與更新的字段(modifyid/modifyby)。
新增注解:@TableField(value = “CREATETIME”,fill = FieldFill.INSERT)
更新注解:@TableField(value = “MODIFY_BY”,fill = FieldFill.UPDATE)
MybatisPlus對(duì)公共字段的配置
package com.yss.common.utils; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.yss.common.domain.SSOUserInfo; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; /** * @author wyy * @version 1.0 * @date 2020/11/5 13:30 */ @Component public class MybatisAuditHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { SSOUserInfo ssoUserInfo = UserInfoUtils.getThreadUserInfo(); this.strictInsertFill(metaObject,"creatorId",String.class, ssoUserInfo.getId()); this.strictInsertFill(metaObject,"creator", String.class,ssoUserInfo.getUserPrincipalName()); this.strictInsertFill(metaObject,"createTime", Date.class,new Date()); } @Override public void updateFill(MetaObject metaObject) { SSOUserInfo ssoUserInfo = UserInfoUtils.getThreadUserInfo(); this.strictInsertFill(metaObject,"modifyId",String.class, ssoUserInfo.getId()); this.strictInsertFill(metaObject,"modifyBy", String.class,ssoUserInfo.getUserPrincipalName()); this.strictInsertFill(metaObject,"modifyTime", Date.class,new Date()); } }
需要注意的是采用@component注解,告知spring容器是一個(gè)bean等。這樣的話就實(shí)現(xiàn)了mybatisplus的公共自斷的新增與更改。
要注意的是,在進(jìn)行handler方法重寫時(shí),
this.strictInsertFill(metaObject,“creator”, String.class,ssoUserInfo.getUserPrincipalName());
這是自的是實(shí)體類的字段,并不是數(shù)據(jù)庫對(duì)應(yīng)字段。
到此這篇關(guān)于mybatisplus的公共字段插入的文章就介紹到這了,更多相關(guān)mybatisplus公共字段內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring事務(wù)&Spring整合MyBatis的兩種方式
這篇文章主要介紹了Spring事務(wù)&Spring整合MyBatis的兩種方式,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02java實(shí)現(xiàn)左旋轉(zhuǎn)字符串
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)左旋轉(zhuǎn)字符串,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03關(guān)于在Java中如何使用yaml的實(shí)例
這篇文章主要介紹了關(guān)于在Java中如何使用yaml的實(shí)例,YAML是一種輕量級(jí)的數(shù)據(jù)序列化格式。它以易讀、易寫的文本格式表示數(shù)據(jù),支持列表、字典等各種數(shù)據(jù)結(jié)構(gòu),被廣泛應(yīng)用于配置文件、數(shù)據(jù)傳輸協(xié)議等領(lǐng)域,需要的朋友可以參考下2023-08-08Java?20在Windows11系統(tǒng)下的簡易安裝教程
這篇文章主要給大家介紹了關(guān)于Java?20在Windows11系統(tǒng)下的簡易安裝教程,學(xué)習(xí)Java的同學(xué),第一步就是安裝好Java環(huán)境,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07使用SpringSecurity設(shè)置角色和權(quán)限的注意點(diǎn)
這篇文章主要介紹了使用SpringSecurity設(shè)置角色和權(quán)限的注意點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03