关于mybatis的MetaObjectHandler
实现MetaObjectHandler会需要实现两个接口
- public void insertFill(MetaObject metaObject)
当有数据插入时,会执行该方法 - public void updateFill(MetaObject metaObject)
当有数据更新时,会执行该方法
可以使用mybatis-plus官方提供的方式实现注入,即使用MetaObjectHandler接口中的实现方法
可以直接使用MetaObject对象实现注入
两种其实都是将数据new date() 注入到metaObject中.
相当于 实体对象.setCreatetime(new date())
这样的话,我们在执行数据插入或更新时,会将数据拼接到执行的sql语句上,实现自动注入.
当然别忘了在对应的字段上开启 @TableField(fill = FieldFill.INSERT_UPDATE) 注解
该功能也可以直接在数据库中开启
当我们勾选上时,数据库也会自动在我们更新或创建时,自动的将当前时间自动注入.
当我们在数据库上实现该功能时,我们操作数据修改时,就会自动更新时间。
创建时间可以不用勾选,否则我们修改数据时,如果创建时间未指定,会直接更新。我们创建时间本身是创建时生成,后期则不变化的,所以不需要勾选创建时间自动更新.