当前位置: 代码网 > it编程>编程语言>Java > MybatisPlus自动填充创建(更新)时间问题

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

2024年09月22日 Java 我要评论
mybatisplus自动填充创建(更新)时间在大多数情况下,我们在创建数据库时都会加上创建、更新时间这些字段,为了保证数据的可追溯性,当然肯定还是有操作日志记录表用来做追溯记录。开发中每一次的创建更

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

在大多数情况下,我们在创建数据库时都会加上创建、更新时间这些字段,为了保证数据的可追溯性,当然肯定还是有操作日志记录表用来做追溯记录。

开发中每一次的创建更新都需要手动去设置这一次操作的时间,会有很多的代码冗余。

  `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

@component
public class mybatishandler implements metaobjecthandler {
	@override
	public void insertfill(metaobject metaobject) {
		//属性名
		this.setfieldvalbyname("createtime", new date(), metaobject);
		//this.setfieldvalbyname("createuser", secureutil.getuserid(), metaobject);
        //不维护create_user可以不使用这行代码
	}

	@override
	public void updatefill(metaobject metaobject) {
		//属性名
		this.setfieldvalbyname("updatetime", new date(), metaobject);
		//this.setfieldvalbyname("updateuser", secureutil.getuserid(), metaobject);
	}
}

二、使用注解

    /**
	 * 进行新增或者更新操作时
	 * mybatis自动进行维护时间
	 */
	@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;

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com