一 概述
基于MyBatisPlus生成策略,存在主键id,乐观锁version,createTime,updateTime,del_flag等字段。
@Data
public class CommonEntity implements Serializable {
private static final long serialVersionUID=1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
@JsonProperty(access = JsonProperty.Access.READ_WRITE)
private Integer id;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime createTime;
/**
* 最后更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime updateTime;
/**
* 最新版本
*/
@TableField(fill = FieldFill.INSERT_UPDATE, update = "%s+1")
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
@Version
private Integer version;
/**
* 删除标记(0-否,1-是)
*/
@TableLogic
@TableField(fill = FieldFill.INSERT)
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private Boolean delFlag;
}
二 基于此常用的公共建表语句
-- xxx表
drop table if exists tableName;
create table tableName (
id int(11) auto_increment comment "xxx表id",
// 中间可以任意怎加字段进行表结构的创建
create_time timestamp not null default CURRENT_TIMESTAMP comment '数据插入数据库的时间',
update_time timestamp not null default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '修改数据库数据的时间',
version int(11) not null comment '最新版本号',
del_flag tinyint not null comment '删除标记(0-否,1-是)',
primary key (id) using BTREE
)engine = InnoDB DEFAULT CHARSET=utf8mb4 comment "xxx表";
个人日常创建表时的公共语句就是这些了。。。