返回顶部
首页 > 资讯 > 数据库 >MybatisPlus自动填充创建(更新)时间
  • 606
分享到

MybatisPlus自动填充创建(更新)时间

mybatis数据库mysql 2023-09-02 10:09:58 606人浏览 独家记忆
摘要

目录 一、实现MetaObjectHandler 二、使用注解 在大多数情况下,我们在创建数据库时都会加上创建、更新时间这些字段,为了保证数据的可追溯性,当然肯定还是有操作日志记录表用来做追溯记录。开发中每一次的创建更新都需要手动去设置这

目录

一、实现MetaObjectHandler

二、使用注解


在大多数情况下,我们在创建数据库时都会加上创建、更新时间这些字段,为了保证数据的可追溯性,当然肯定还是有操作日志记录表用来做追溯记录。开发中每一次的创建更新都需要手动去设置这一次操作的时间,会有很多的代码冗余。

  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',  `create_user` bigint DEFAULT NULL COMMENT '创建人',  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',  `update_user` bigint DEFAULT NULL COMMENT '更新人',  `status` tinyint DEFAULT '1' COMMENT '状态(备用)',  `is_deleted` tinyint DEFAULT '0' COMMENT '逻辑删除

这个时候,有没有一种方法可以帮我们自动维护这些字段呢?

在这里的话,不得不提到mybatisPlus的功能强大了。MybatisPlus有一个扩展功能:自动填充。此功能常见的应用场景为,插入数据的时候自动添加创建时间、创建人、修改时间、修改人、删除标记。通过实现MetaObjectHandler接口,重写insertFillupdateFill方法,当我们插入和修改数据的时候可以自动添加指定字段的值,这些不就是我们想要的效果吗?

话不多说,上代码!

一、实现MetaObjectHandler

@Componentpublic class MybatisHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {//属性名this.setFieldValByName("createTime", new Date(), metaObject);//this.setFieldValByName("createUser", SecureUtil.getUserId(), metaObject);        //不维护create_user可以不使用这行代码}@Overridepublic void updateFill(MetaObject metaObject) {//属性名this.setFieldValByName("updateTime", new Date(), metaObject);//this.setFieldValByName("updateUser", SecureUtil.getUserId(), metaObject);}}

二、使用注解

    @TableField(fill= FieldFill.INSERT)private Long createUser;@TableField(fill=FieldFill.INSERT)private Date createTime;@TableField(fill=FieldFill.UPDATE)private Long updateUser;@TableField(fill=FieldFill.UPDATE)private Date updateTime;

这样就可以做到自动维护更新、创建时间啦!

来源地址:https://blog.csdn.net/m0_71239320/article/details/128342037

您可能感兴趣的文档:

--结束END--

本文标题: MybatisPlus自动填充创建(更新)时间

本文链接: https://www.lsjlt.com/news/390627.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作