使用情景:当我们往数据库表中加入一条数据,或者更新一条数据的时候,通常要调用实体类的set方法,运用mybatisplus的自动填充功能则可以帮我们自动设置,不用我们手动调用set()方法。
1、在实体类中对需要自动填充的属性加上注解
//对于添加时要填充的 @TableField(fill = FieldFill.INSERT) //对于更新时要填充的 @TableField(fill = FieldFill.INSERT_UPDATE)2、创建类 类要实现MetaObjectHandler接口 实现接口中的insertFill和updateFill方法
以添加和更新数据时的时间为例
@TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; @Component//交给spring管理 //@Service //@Repository public class MyMetaObjectHandler implements MetaObjectHandler { //使用mp实现添加操作执行 @Override public void insertFill(MetaObject metaObject) { this.setFieldValByName("createTime",new Date(),metaObject); this.setFieldValByName("updateTime",new Date(),metaObject); } //使用mp实现更新操作执行 @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("updateTime",new Date(),metaObject); } }对于@Component、@Service、@Repositor这三个注解是要把该类交给spring进行管理,否则,在添加或者更新操作时,将得不到自动填充的功能 三个注解任意一个都可以;
对于一两次的更新添加操作可能看不出mp填充功能的方便,有人可能觉得直接set更简单,但是对于操作频繁而言,可以简洁很多。