🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈
🔥网站:vip.zsqt.cc
🤞MyBatisPlus:@TableField中fill 属性用于指定插入或更新时自动填充🤞
注解的 fill 属性用于指定插入或更新操作时自动填充字段的策略。该属性通常与 MetaObjectHandler 结合使用,实现自动填充数据库表中的字段值,例如创建时间、更新时间等。
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
// 使用 setFieldValByName 方法为字段赋值
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
// 使用 setFieldValByName 方法为字段赋值
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}
重写了 insertFill 和 updateFill 方法,并在这些方法中使用 setFieldValByName 方法为字段赋值。在插入操作时,我们为 createTime 和 updateTime 字段赋予当前时间的值;在更新操作时,我们为 updateTime 字段赋予当前时间的值。
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.MybatisDefaultMetaObjectHandler;
@TableName("user")
public class User {
@TableId
private Long id;
private String name;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
// 省略其他字段和方法
}
定义了一个 User 实体类,并使用了 @TableField 注解标记了 createTime 和 updateTime 字段,并分别指定了它们的自动填充策略。createTime 字段在插入操作时自动填充,而 updateTime 字段在插入和更新操作时都会自动填充。
大功告成,撒花致谢🎆🎇🌟,关注我不迷路,带你起飞带你富。
Writted By 知识浅谈