创建实体类
参照新建表的字段,我们给实体类增加如下字段。
java
public class DemoUser {
/**
* 主键
*/
private Integer id;
/**
* 名称
*/
private String name;
/**
* 创建人
*/
private Integer createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新人
*/
private Integer modifyBy;
/**
* 更新时间
*/
private LocalDateTime modifyTime;
/**
* 显示顺序
*/
private Integer displayOrder;
/**
* 备注
*/
private String remark;
/**
* 1:生效;0:停用
*/
private String active;
}
注
- 看到这里可能有小伙伴就有疑问了,为什么数据库中字段以下划线分割,到了实体类就变成了驼峰?
- 因为这么做更加优雅,也更加规范。
- 比如 Mysql 数据库字段命名为 createBy,乍一看没问题,但到了 oracle 就变成了 CREATEBY,到了 postgresql 就变成了 createby,可读性非常差。
- 比如实体类字段命名为 create_by,则 get 时变成了 getCreate_by(),也非常的不美观。
- 但这都是为了代码更加优雅才定的小规范,若觉得不妨碍整体美观度,数据库字段也可以变为驼峰,实体类也可以变为下划线分割。
实体类修饰
- 可能会有小伙伴立马给他加上
get set
的方法,如下
java
public class DemoUser {
/**
* 主键
*/
private Integer id;
/**
* 名称
*/
private String name;
/**
* 创建人
*/
private Integer createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新人
*/
private Integer modifyBy;
/**
* 更新时间
*/
private LocalDateTime modifyTime;
/**
* 显示顺序
*/
private Integer displayOrder;
/**
* 备注
*/
private String remark;
/**
* 1:生效;0:停用
*/
private String active;
public String getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getCreateBy() {
return createBy;
}
public void setCreateBy(Integer createBy) {
this.createBy = createBy;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public Integer getModifyBy() {
return modifyBy;
}
public void setModifyBy(Integer modifyBy) {
this.modifyBy = modifyBy;
}
public LocalDateTime getModifyTime() {
return modifyTime;
}
public void setModifyTime(LocalDateTime modifyTime) {
this.modifyTime = modifyTime;
}
public Integer getDisplayOrder() {
return displayOrder;
}
public void setDisplayOrder(Integer displayOrder) {
this.displayOrder = displayOrder;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getActive() {
return active;
}
public void setActive(String active) {
this.active = active;
}
}
- 针对于这种情况,有了
Lombok
后,可以大大减少代码量了,只需一个@Data
注解即可实现我们要的功能。
java
@Data
public class DemoUser {
/**
* 主键
*/
private Integer id;
/**
* 名称
*/
private String name;
/**
* 创建人
*/
private Integer createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新人
*/
private Integer modifyBy;
/**
* 更新时间
*/
private LocalDateTime modifyTime;
/**
* 显示顺序
*/
private Integer displayOrder;
/**
* 备注
*/
private String remark;
/**
* 1:生效;0:停用
*/
private String active;
}
- 一般实体类都需要用到缓存、序列化等等,所以要实现序列化接口
java
public class DemoUser implements Serializable {
private static final long serialVersionUID = 1L;
}
- 加上
mybatis-plus
的注解。最终版如下:
java
@Data
@TableName("cbb_demo_user")
public class DemoUser implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId
private Integer id;
/**
* 名称
*/
private String name;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
private Integer createBy;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
* 更新人
*/
@TableField(fill = FieldFill.UPDATE)
private Integer modifyBy;
/**
* 更新时间
*/
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime modifyTime;
/**
* 显示顺序
*/
private Integer displayOrder;
/**
* 备注
*/
private String remark;
}