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安全错误
数据库的锁怎样保障安全
合肥网络技术招聘信息
坚强网络安全
家用小型服务器可以关电源吗
主题画饭圈乱象绘网络安全
阿里巴巴网络安全招聘公安民警
用友软件开发框架
java多线程缓存数据库
mysql数据库读plc
合作类业务网络安全责任划分
tcga数据库相关的书
混沌起源各个版本的服务器
服务器设置安全类型
R720服务器关闭pxe启动
固态硬盘服务器测评
山西电商软件开发哪家好
海曙ios软件开发周期
未来会出现互联网科技阶级吗
临湘手机软件开发
检察院进行网络安全检查
隔离交换网络技术
vb 数据库删除数据库
软件开发人员年终总结免费
安全的web服务器托管
郑州安卓软件开发哪家可靠
西藏网络安全论文
网络协议和网络安全模式
服务器代码表
教程 数据库
图书管理系统 数据库
邮件和服务器无法连接