企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# :-: 建Entity ## 创建实体类 1. 因为`POJO / VO / DTO`等等是会被其他模块依赖引用的,所以我们需要把实体类建在`applets-demo-api`工程内。 ![](https://img.kancloud.cn/8b/4d/8b4de409804555b2890cc80f55f450e2_843x410.png) 2. 参照新建表的字段,我们给实体类增加如下字段。 ~~~ package com.applets.system.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * @ClassName HomeConfig * @Description TODD * @Author 杨勇[yangyong] * @Date 2019/5/6 13:20 * @Version 1.0 **/ @Data @TableName("applets_active") @ApiModel(value = " AppletsActive 对象" , description = "AppletsActive 对象") public class Active implements Serializable { private static final long serialVersionUID = 6390330037639255869L; /** * 主键 */ @TableId(value = "id" , type = IdType.AUTO) @ApiModelProperty(value = "主键") private Long id; /** * 活动名称 */ @ApiModelProperty(value = "活动名称") private String activeName; /** * 活动图片 */ @ApiModelProperty(value = "活动图片") private String activeImage; @ApiModelProperty(value = "类型[0-小程序,1-h5]") private Integer type; @ApiModelProperty(value = "跳转url") private String activeUrl; /** * 活动状态 */ @ApiModelProperty(value = "活动状态") private Integer status; } ~~~ ### 注: * 看到这里可能有小伙伴就有疑问了,为什么数据库中字段以下划线分割,到了实体类就变成了驼峰? * 因为这么做更加优雅,也更加规范。 * 比如Mysql数据库字段命名为 blogTitle,乍一看没问题,但到了oracle就变成了 BLOGTITLE,到了postgresql就变成了blogtitle,可读性非常差。 * 比如实体类字段命名为blog\_title,则get时变成了 getBlog\_title(),也非常的不美观。 * 但这都是为了代码更加优雅才定的小规范,若觉得不妨碍整体美观度,数据库字段也可以变为驼峰,实体类也可以变为下划线分割。 ## 实体类修饰 1. 可能会有小伙伴立马给他加上`get set`的方法,如下 ~~~ /** * @ClassName HomeConfig * @Description TODD * @Author 杨勇[yangyong] * @Date 2019/5/6 13:20 * @Version 1.0 **/ @TableName("applets_active") @ApiModel(value = " AppletsActive 对象", description = "AppletsActive 对象") public class Active implements Serializable { private static final long serialVersionUID = 6390330037639255869L; /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value = "主键") private Long id; /** * 活动名称 */ @ApiModelProperty(value = "活动名称") private String activeName; /** * 活动图片 */ @ApiModelProperty(value = "活动图片") private String activeImage; @ApiModelProperty(value = "类型[0-小程序,1-h5]") private Integer type; @ApiModelProperty(value = "跳转url") private String activeUrl; /** * 活动状态 */ @ApiModelProperty(value = "活动状态") private Integer status; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getActiveName() { return activeName; } public void setActiveName(String activeName) { this.activeName = activeName; } public String getActiveImage() { return activeImage; } public void setActiveImage(String activeImage) { this.activeImage = activeImage; } public Integer getType() { return type; } public void setType(Integer type) { this.type = type; } public String getActiveUrl() { return activeUrl; } public void setActiveUrl(String activeUrl) { this.activeUrl = activeUrl; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } } ~~~ 3. 针对于这种情况,有了`Lombok`后,可以大大减少代码量了,只需一个`@Data`注解即可实现我们要的功能。 ~~~ @Data @TableName("applets_active") @ApiModel(value = " AppletsActive 对象" , description = "AppletsActive 对象") public class Active implements Serializable { private static final long serialVersionUID = 6390330037639255869L; /** * 主键 */ @TableId(value = "id" , type = IdType.AUTO) @ApiModelProperty(value = "主键") private Long id; /** * 活动名称 */ @ApiModelProperty(value = "活动名称") private String activeName; /** * 活动图片 */ @ApiModelProperty(value = "活动图片") private String activeImage; @ApiModelProperty(value = "类型[0-小程序,1-h5]") private Integer type; @ApiModelProperty(value = "跳转url") private String activeUrl; /** * 活动状态 */ @ApiModelProperty(value = "活动状态") private Integer status; } ~~~ 3. 一般实体类都需要用到缓存、序列化等等,所以要实现序列化接口 ~~~ public class Active implements Serializable { private static final long serialVersionUID = 6390330037639255869L; } ~~~ 4. 加上`mybatis-plus`的注解,因为id为自增,所以不需要配置。若id为自定义,比如使用snow-flake算法,则需要在`private Integer id`上配置注解`@TableId(value = "id", type = IdType.ID_WORKER)`。最终版如下: ~~~ @Data @TableName("applets_active") @ApiModel(value = " AppletsActive 对象" , description = "AppletsActive 对象") public class Active implements Serializable { private static final long serialVersionUID = 6390330037639255869L; /** * 主键 */ @TableId(value = "id" , type = IdType.AUTO) @ApiModelProperty(value = "主键") private Long id; /** * 活动名称 */ @ApiModelProperty(value = "活动名称") private String activeName; /** * 活动图片 */ @ApiModelProperty(value = "活动图片") private String activeImage; @ApiModelProperty(value = "类型[0-小程序,1-h5]") private Integer type; @ApiModelProperty(value = "跳转url") private String activeUrl; /** * 活动状态 */ @ApiModelProperty(value = "活动状态") private Integer status; } ~~~