Mybatis-Plus如何自动填充更新操作相关字段
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,小编给大家分享一下Mybatis-Plus如何自动填充更新操作相关字段,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!场景介
千家信息网最后更新 2024年11月20日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安全错误
数据库的锁怎样保障安全
通富微电软件开发
电信 无法连接到服务器
前所未有的数据库
在数据库中二维表是什么意思
网络安全画画评选
抑郁CCBT软件开发
密钥查看电脑网络安全
网络安全学科的发展前景
高中自学网络安全
温州物联网智慧小区软件开发
宝应移动网络安全宣传
人人商城数据库修改帐号密码
java调用达梦数据库表空间
对数据库技术有卓越贡献的人
腾讯云服务器开启smtp
ios应用 数据库
实况足球的服务器怎么查
孕妇在服务器机房
网络安全的英语作文100字
哪个不是黑色沙漠的服务器
服务器管理器在哪打开
江西赣才网络技术有限公司
软件开发工程师学多久
上位机软件开发 书籍
华为服务器双机热备
114域名服务器在哪
如何让网络安全模式有声音
如何实现网络安全英语作文
软件开发兼容xp
如何关闭数据库连接