当前位置:首页 > 编程笔记 > 正文
已解决

spring boot加mybatis puls实现,在新增/修改时,对某些字段进行处理,使用的@TableField()

来自网友在路上 11068106提问 提问时间:2023-11-20 16:56:03阅读次数: 106

最佳答案 问答题库1068位专家为你答疑解惑

1.先说场景,在对mysql数据库表数据插入或者更新时都得记录时间和用户id

传统实现有点繁琐,这里还可以封装一下公共方法。

2.解决方法:

    2.1:使用aop切面编程(记录一下,有时间再攻克)。

    2.2:使用@TableField()注解。

3.我使用的@TableField  注解实现,因为没有很多的业务处理,单纯的记录一下,以下是具体实现

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {// 在插入时自动填充 create_time 和 update_time 字段this.strictInsertFill(metaObject, "createTime", Date.class, new Date());this.strictInsertFill(metaObject, "createBy", String.class, BaseUtlis.getCurrentUser().getId());}@Overridepublic void updateFill(MetaObject metaObject) {// 在更新时自动填充 update_time 字段this.strictUpdateFill(metaObject, "updateTime",Date.class, new Date());this.strictInsertFill(metaObject, "updateBy", String.class, BaseUtlis.getCurrentUser().getId());}
}

注: 字段需要跟实体类对应起来,我项目架构是使用了驼峰命名使用下划线后字母大写。BaseUtlis.getCurrentUser().getId(),这个是我封装的一个获取当前登录用户的方法。

参数解析:

this.strictUpdateFill(metaObject, "updateTime",Date.class, new Date());

metaObject:对象

updateTime:实体类目标字段

Date.class:数据类型

new Date():具体值

4.yml配置

mybatis-plus:global-config:db-config:meta-object-handler: com.zuodou.mymeta.MyMetaObjectHandler

5.在对应实体类的字段上加

@TableField(fill = FieldFill.UPDATE)

或者

@TableField(fill = FieldFill.INSERT)

(侵权联系删除)

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"spring boot加mybatis puls实现,在新增/修改时,对某些字段进行处理,使用的@TableField()":http://eshow365.cn/6-40501-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!