目录
-> 创建个基类pojo BasePojo呀 里面把一些经常写的属性放到里面
引言: 建造实体类的时候 总写几个属性
创建时间
更新时间
每次写都很烦躁 墨迹 那么有没有什么解决办法呢 有.......
-> 创建个基类pojo BasePojo呀 里面把一些经常写的属性放到里面
但是 这里有个坑 大家还是注意一下
先看demo [连点写法会遇到的问题 , 不喜欢连点的可以划走了]
创建三个类
1. son类
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class Son extends Father {
private String aaa;
private String bbb;
private String ccc;
}
2. father类
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class Father {
private String fatherAAA;
}
3. 创建一个main方法
public class playDemo {
public static void main(String[] args) {
Son son = new Son();
son.setAaa("aa").setFatherAAA("aa");
}
}
注意看
如果这么写会怎么样
报错了
只能点出
子类继承父类 有顺序的 需要先调用子类方法 然后调用父类方法 反之不允许
正确写法: 对象.子类方法.父类方法
son.setAaa("aa").setFatherAAA("aa");
上实战
package com.jt.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component//不属于任何一层就用这个 service controller都不属于
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override//入库 created
public void insertFill(MetaObject metaObject) {
Date date=new Date();
// this.setFieldValByName(arg1,arg2,arg3 )
// arg1: 自动填充的字段名称
//arg2: 自动填充 的值
//arg3: metaObject固定写法
this.setFieldValByName("created",date,metaObject );
}
@Override//更新调用 updated
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updated",new Date(),metaObject );
}
}
package com.jt.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 商品表
*/
@Data
@Accessors(chain = true)
public class Item extends BasePojo{
@TableId(type = IdType.AUTO)
private Integer id; //商品Id号
private String title; //商品标题信息
private String sellPoint; //卖点信息
private Integer price; //商品价格
private Integer num; //商品数量
private String images; //商品图片
private Integer itemCatId; //商品分类ID号
private Boolean status; //状态信息 0 下架 1 上架
}
package com.jt.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
//pojo基类,完成2个任务,2个日期,实现序列化
@Data
@Accessors(chain=true)
public class BasePojo implements Serializable{
@TableField(fill = FieldFill.INSERT)
private Date created; //表示入库时需要赋值
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updated; //表示入库/更新时赋值.
}
FieldFill是一个枚举类 大家可以点开看看
这样 繁琐的时间就不用总写了