深入了解:MyBatisPlus中使用 @TableField完成字段自动填充
在MyBatis Plus中,我们可以使用@TableField
注解来指定实体类字段和数据库表字段之间的映射关系,并且可以利用它的fill
属性来实现字段的自动填充。
自动填充通常用于字段如创建时间、更新时间、创建人等的自动填充。
以下是一个使用@TableField
注解实现字段自动填充的例子:
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import java.util.Date;
public class Entity {
// 其他字段...
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
// 其他字段的getter和setter方法...
}
然后,你需要配置一个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) {
this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 创建时间
}
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); // 更新时间
}
}
在这个例子中,当你通过MyBatis Plus插入或更新记录时,createTime
和updateTime
字段会自动被填充为当前时间。这是通过MyBatis Plus的插件机制在插入或更新操作之前执行的。
评论已关闭