实体管理
实体类遵循 MyBatis Plus 的书写规范,在对应系统或插件的 entity 目录下。实体类是项目数据层的基础,良好的实体类设计有助于提高代码的可读性、可维护性和性能
文件位置


实体类基础结构
实体类是数据库表在 Java 中的映射,用于封装数据库表的结构和数据。在本项目中,实体类遵循以下基本结构:
java
package com.niu.core.entity.shop;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 店铺扩展表实体
*/
@Data
public class SiteShop implements Serializable {
private static final long serialVersionUID = 1L;
// 字段定义
// ...
}核心注解使用
@Data(Lombok)
用于自动生成 getter、setter、toString、equals 和 hashCode 方法,简化代码
java
@Data
public class SiteShop implements Serializable {
// ...
}@TableId(MyBatis Plus)
用于指定实体类的主键字段,支持自定义主键名称和生成策略
java
/** 主键 */
@TableId(value="id", type= IdType.AUTO)
private Integer id;
/** 分类id */
@TableId(value="category_id", type= IdType.AUTO)
private Integer categoryId;
/** 系统用户ID */
@TableId(value="uid", type= IdType.AUTO)
private Integer uid;@TableField(MyBatis Plus)
用于指定实体类字段与数据库字段的映射关系,当字段名与数据库列名不一致时使用
java
@TableField(value = "desc")
private String desc;@TableLogic(MyBatis Plus)
用于逻辑删除功能,标注在删除字段上
java
@TableLogic
private Integer isDelete;字段定义规范
命名规则
采用
camelCase命名法(驼峰命名)字段名与数据库字段名对应(通过 MyBatis Plus 自动映射)
避免使用 Java 关键字
使用有意义的字段名,避免缩写
示例:
java
private String alipayAccountNo; // 支付宝账号
private String bankAccountName; // 提现账号对应姓名
private Integer businessStatus; // 营业状态
private Integer categoryId; // 商家分类id数据类型选择
| 数据库类型 | Java类型 | 使用场景 |
|---|---|---|
| INT/BIGINT | Integer/Long | 整数类型(如 ID、数量、状态等) |
| VARCHAR/TEXT | String | 字符串类型(如名称、描述、地址等) |
| DECIMAL | BigDecimal | 金额、价格等需要精确计算的数值 |
| DATETIME/TIMESTAMP | Long | 时间戳(毫秒) |
| BOOLEAN | Integer | 布尔值(1表示是,0表示否) |
示例:
java
private Integer categoryId; // 整数类型
private String categoryName; // 字符串类型
private BigDecimal commissionRate; // 金额类型
private Long createTime; // 时间戳
private Integer isRecommend; // 布尔值(0/1)状态字段处理
使用 Integer 类型表示状态,通过注释说明状态含义和取值范围。
示例:
java
/** 提现账户类型(1银行卡,2支付宝,3微信,4微信零钱) */
private Integer bankType;
/** 营业状态(1营业中,2休息中) */
private Integer businessStatus;
/** 是否推荐 */
private Integer isRecommend;
/** 是否自营 */
private Integer isSelf;序列化处理
所有实体类都必须实现 Serializable 接口,并定义 serialVersionUID 常量,确保序列化和反序列化的兼容性。
java
public class SiteShop implements Serializable {
private static final long serialVersionUID = 1L;
// ...
}