Mybatis-Plus如何自动填充更新操作相关字段
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,小编给大家分享一下Mybatis-Plus如何自动填充更新操作相关字段,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!场景介
千家信息网最后更新 2025年01月22日Mybatis-Plus如何自动填充更新操作相关字段场景介绍
自动填充处理器
Mybatis-Plus配置类
配置实体类中相关字段的自动填充策略
小编给大家分享一下Mybatis-Plus如何自动填充更新操作相关字段,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
场景介绍
在项目的数据表设计中,每张表都有create_id、create_time、update_id、update_time这四个字段,那么在Java应用中,针对新增和修改操作要对这四个字段进行相应的更改:
create_id
、update_id
要自动填充为当前登录的用户IDcreate_time
、update_time
要自动填充为当前时间
下面说说代码实现:
自动填充处理器
需要实现Mybatis-Plus中的MetaObjectHandler接口
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;import hw.topevery.basis.runtime.UserRuntime;import org.apache.ibatis.reflection.MetaObject;import org.springframework.stereotype.Component;import java.time.LocalDateTime;import java.util.Objects;/** * 更新相关字段处理器 * * @author whw * @date 2020/1/3 16:41 */@Componentpublic class UpdateRelatedFieldsMetaHandler implements MetaObjectHandler { /** * 新增操作 * * @param metaObject */ @Override public void insertFill(MetaObject metaObject) { this.strictInsertFill(metaObject, "createId", String.class, getCurrentUserId()); this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); this.strictInsertFill(metaObject, "updateId", String.class, getCurrentUserId()); this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); } /** * 更新操作 * * @param metaObject */ @Override public void updateFill(MetaObject metaObject) { this.strictUpdateFill(metaObject, "updateId", String.class, getCurrentUserId()); this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); } /** * 获取当前登录用户ID * * @return */ private String getCurrentUserId() { return "当前登录用户ID"; }}
Mybatis-Plus配置类
需要将处理器注入进Spring容器才会生效
import com.baomidou.mybatisplus.core.config.GlobalConfig;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import hw.topevery.kunming.wapi.handler.UpdateRelatedFieldsMetaHandler;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * Mybatis-Plus配置类 * * @author whw * @date 2020/1/3 16:41 */@Configurationpublic class MybatisPlusConfig { @Bean public GlobalConfig globalConfig() { GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setMetaObjectHandler(new UpdateRelatedFieldsMetaHandler()); return globalConfig; }}
配置实体类中相关字段的自动填充策略
在@TableField注解中设置fill属性
字段填充策略FieldFill说明
值 | 描述 |
---|---|
DEFAULT | 默认不处理 |
INSERT | 插入填充字段 |
UPDATE | 更新填充字段 |
INSERT_UPDATE | 插入和更新填充字段 |
import com.baomidou.mybatisplus.annotation.FieldFill;import com.baomidou.mybatisplus.annotation.TableField;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import java.io.Serializable;import java.time.LocalDateTime;/** * 基础实体类 * * @author whw * @date 2020/1/3 17:37 */@Datapublic class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "创建用户ID") @TableField(value = "c_create_id", fill = FieldFill.INSERT) private String createId; @ApiModelProperty(value = "创建时间") @TableField(value = "c_create_time", fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "更新用户ID") @TableField(value = "c_update_id", fill = FieldFill.INSERT_UPDATE) private String updateId; @ApiModelProperty(value = "更新时间") @TableField(value = "c_update_time", fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime;}
以上是"Mybatis-Plus如何自动填充更新操作相关字段"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
字段
更新
用户
处理
处理器
时间
篇文章
登录
配置
内容
实体
策略
不怎么
代码
场景
基础
大部分
容器
属性
接口
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器返回ack是顺序的
网络技术员工年终总结
数据库技术概论ppt
腾讯节省服务器资源分布式存储
嘉定区技术软件开发报价方案
如何用云服务器设置路由器
日常常用数据库
火辣服务器
推荐的数据库备注系统
数据库表查询表名加中括号
西安打车用什么软件开发
四年级简单网络安全手抄报
浙江桌面软件开发费用
贵州项目软件开发有哪些
软件开发 的产品标识
网络安全保障体系和能力
如何将代码放入服务器
对于中文法律数据库的期待
网络安全 是指通过采取必要
国内外网络安全的评价标准
胜利森诺软件开发
如何确认服务器安全性
网络安全秘钥不正确笔记本电脑
招商蛇口招聘软件开发
唐山汇龙网络技术有限公司
计算机网络安全技术pdf
苹果手机数据库怎么打开
网线连接服务器无法登录
数据库中的事件怎么打开
软件开发协议 中英文