概述
在一个项目中,会包含许多数据表,可能是五张数据表,也可能十几张或者更多。然而在这些数据表中可能会包含一些公共的字段属性,如果每创建一个实体类都要将编写一次代码,很明显会很耗时耗力,MyBatis-Plus支持自定义处理器的形式实现保存更新的自动填充 ,为我们节省了很大的时间。
公共实体类:
创建一个BasePojo类,存放各个实体类的公共字段。添加注解@TableFiled
@Data
public abstract class BasePojo implements Serializable{
@TableFiled(fill=FiledFill.INSERT)
private Date created; //数据库执行INSERT操作时为该字段赋值
@TableFiled(fill=FieldFill.INSERT_UPDATED)
private Date update;
//数据库执行INSERT或UPDATE操作时为该字段赋值
}
自动填充功能实现类:
创建MyMetaObjectHandler类,实现MetaObjectHandler接口中的insertFill(插入操作)和updateFill(修改操作)方法
public class MyMetaObjectHandler implements MetaObjectHandler {
/**
* 插入操作,自动填充
*
* @param metaObject
*/
@Override
public void insertFill(MetaObject metaObject) {
Object created = getFileByName("created", metaObject);
if(Objects.isNull(created)){
setFiledValByName("created", new Date(), metaObject);
}
Object updated = getFiledByName("updated",metaObject);
if(Objects.isNull(updated)){
setFiledValByName("updated", new Date(), metaObject);
}
}
/**
* 修改操作,自动填充
*
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
setFiledValByName("updated", new Date(), metaObject);
}
}
这样,如果其他数据表中包含了“created”和“updated”字段,实体类直接继承BasePojo类即可,代码执行数据表的INSERT和UPDATE时就可以自动填充这些字段,不用我们再new Date()对象了!!!
最后
以上就是鲤鱼烤鸡为你收集整理的MyBatis-Plus实体类字段自动填充的全部内容,希望文章能够帮你解决MyBatis-Plus实体类字段自动填充所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复