diff --git a/back/src/main/java/com/entity/ConfigEntity.java b/back/src/main/java/com/entity/ConfigEntity.java index 19ba0fe3..5933f837 100644 --- a/back/src/main/java/com/entity/ConfigEntity.java +++ b/back/src/main/java/com/entity/ConfigEntity.java @@ -1,54 +1,99 @@ +// 声明该类所在的包名为 com.entity,通常用于存放与数据库实体对应的 Java 类 package com.entity; +// 导入 Serializable 接口,实现该接口的类的对象可以被序列化和反序列化, +// 便于在网络传输或存储时使用 import java.io.Serializable; +// 导入 MyBatis-Plus 框架的 TableId 注解,用于指定数据库表的主键字段 import com.baomidou.mybatisplus.annotations.TableId; +// 导入 MyBatis-Plus 框架的 TableName 注解,用于指定该实体类对应的数据库表名 import com.baomidou.mybatisplus.annotations.TableName; +// 导入 MyBatis-Plus 框架的 IdType 枚举,用于指定主键的生成策略 import com.baomidou.mybatisplus.enums.IdType; /** -* 类说明 : -*/ + * 类说明 : + */ +// 使用 TableName 注解指定该实体类对应的数据库表名为 "config" @TableName("config") +// 定义 ConfigEntity 类,实现 Serializable 接口 public class ConfigEntity implements Serializable{ -private static final long serialVersionUID = 1L; - //测试 - //测试 + // 定义序列化版本号,用于在序列化和反序列化过程中确保类的版本一致性 + private static final long serialVersionUID = 1L; + // 这里的注释 "测试" 可能是开发者在调试或开发过程中留下的临时信息,可根据实际情况修改或删除 + // 测试 + // 测试 + // 使用 TableId 注解指定该字段为主键,并且主键的生成策略为自动递增(AUTO) @TableId(type = IdType.AUTO) + // 定义一个 Long 类型的字段 id,作为数据库表的主键 private Long id; - + /** * key + * 该字段用于存储配置项的键 */ + // 定义一个 String 类型的字段 name,用于存储配置项的键 private String name; - + /** * value + * 该字段用于存储配置项的值 */ + // 定义一个 String 类型的字段 value,用于存储配置项的值 private String value; + /** + * 获取主键 id 的值 + * @return 主键 id 的值 + */ + // 定义 getId 方法,用于获取 id 字段的值 public Long getId() { return id; } + /** + * 设置主键 id 的值 + * @param id 要设置的主键 id 的值 + */ + // 定义 setId 方法,用于设置 id 字段的值 public void setId(Long id) { this.id = id; } + /** + * 获取配置项的键 + * @return 配置项的键 + */ + // 定义 getName 方法,用于获取 name 字段的值 public String getName() { return name; } + /** + * 设置配置项的键 + * @param name 要设置的配置项的键 + */ + // 定义 setName 方法,用于设置 name 字段的值 public void setName(String name) { this.name = name; } + /** + * 获取配置项的值 + * @return 配置项的值 + */ + // 定义 getValue 方法,用于获取 value 字段的值 public String getValue() { return value; } + /** + * 设置配置项的值 + * @param value 要设置的配置项的值 + */ + // 定义 setValue 方法,用于设置 value 字段的值 public void setValue(String value) { this.value = value; } - -} +} \ No newline at end of file diff --git a/back/src/main/java/com/entity/DiscussjiudianjianjieEntity.java b/back/src/main/java/com/entity/DiscussjiudianjianjieEntity.java index 87adad4b..91fe24e3 100644 --- a/back/src/main/java/com/entity/DiscussjiudianjianjieEntity.java +++ b/back/src/main/java/com/entity/DiscussjiudianjianjieEntity.java @@ -1,164 +1,255 @@ +// 声明该类所在的包名为 com.entity,通常用于存放与数据库实体对应的 Java 类 package com.entity; +// 导入 MyBatis-Plus 框架的 TableId 注解,用于指定数据库表的主键字段 import com.baomidou.mybatisplus.annotations.TableId; +// 导入 MyBatis-Plus 框架的 TableName 注解,用于指定该实体类对应的数据库表名 import com.baomidou.mybatisplus.annotations.TableName; +// 导入 JSR-303 验证注解,NotBlank 用于验证字符串不为 null 且去除首尾空格后长度大于 0 import javax.validation.constraints.NotBlank; +// 导入 JSR-303 验证注解,NotEmpty 用于验证集合、数组、字符串等不为空 import javax.validation.constraints.NotEmpty; +// 导入 JSR-303 验证注解,NotNull 用于验证对象不为 null import javax.validation.constraints.NotNull; - +// 导入 Jackson 库的 JsonIgnoreProperties 注解,用于在序列化和反序列化时忽略某些属性 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +// 导入反射调用时可能抛出的 InvocationTargetException 异常类 import java.lang.reflect.InvocationTargetException; - +// 导入 Serializable 接口,实现该接口的类的对象可以被序列化和反序列化 import java.io.Serializable; +// 导入 Date 类,用于处理日期和时间 import java.util.Date; +// 导入 List 接口,用于表示一组对象 import java.util.List; - +// 导入 Spring 框架的 DateTimeFormat 注解,用于指定日期在接收时的格式 import org.springframework.format.annotation.DateTimeFormat; +// 导入 Jackson 库的 JsonFormat 注解,用于指定日期在序列化时的格式 import com.fasterxml.jackson.annotation.JsonFormat; +// 导入 Apache Commons BeanUtils 工具类,用于进行 JavaBean 属性的复制操作 import org.apache.commons.beanutils.BeanUtils; +// 导入 MyBatis-Plus 框架的 TableField 注解,用于指定字段在数据库表中的一些属性 import com.baomidou.mybatisplus.annotations.TableField; +// 导入 MyBatis-Plus 框架的 FieldFill 枚举,用于指定字段的填充策略 import com.baomidou.mybatisplus.enums.FieldFill; +// 导入 MyBatis-Plus 框架的 IdType 枚举,用于指定主键的生成策略 import com.baomidou.mybatisplus.enums.IdType; - /** * 酒店简介评论表 * 数据库通用操作实体类(普通增删改查) - * @author - * @email + * @author + * @email * @date 2022-04-04 00:20:05 */ +// 使用 TableName 注解指定该实体类对应的数据库表名为 "discussjiudianjianjie" @TableName("discussjiudianjianjie") +// 定义 DiscussjiudianjianjieEntity 类,使用泛型 T,实现 Serializable 接口 public class DiscussjiudianjianjieEntity implements Serializable { + // 定义序列化版本号,用于在序列化和反序列化过程中确保类的版本一致性 private static final long serialVersionUID = 1L; - + // 无参构造函数,用于创建 DiscussjiudianjianjieEntity 对象时不传入任何参数的情况 public DiscussjiudianjianjieEntity() { - + // 构造函数体为空,目前没有需要初始化的额外操作 } - + + /** + * 带参数的构造函数,用于根据泛型对象 t 创建 DiscussjiudianjianjieEntity 对象 + * @param t 泛型对象,用于复制属性到当前 DiscussjiudianjianjieEntity 对象 + */ public DiscussjiudianjianjieEntity(T t) { + // 使用 try-catch 块捕获可能出现的异常 try { + // 调用 BeanUtils 的 copyProperties 方法,将 t 对象的属性复制到当前对象(this)中 + // 此方法会自动匹配两个对象中相同名称的属性,并进行赋值操作 BeanUtils.copyProperties(this, t); } catch (IllegalAccessException | InvocationTargetException e) { + // 如果在复制属性过程中出现非法访问异常(IllegalAccessException) + // 或者反射调用目标方法时出现异常(InvocationTargetException),会进入此 catch 块 + // 这里的 TODO 表示需要开发者后续根据实际情况完善异常处理逻辑 + // 目前只是简单地打印异常堆栈信息,方便调试 // TODO Auto-generated catch block e.printStackTrace(); } } - + /** * 主键id + * 用于唯一标识数据库表中的每一条记录 */ + // 使用 TableId 注解指定该字段为主键 @TableId + // 定义一个 Long 类型的字段 id,作为数据库表的主键 private Long id; + /** * 关联表id + * 用于关联其他表的记录,可能表示与酒店简介相关的其他信息的标识 */ - + // 定义一个 Long 类型的字段 refid,用于存储关联表的 id private Long refid; - + /** * 用户id + * 用于唯一标识发表评论的用户 */ - + // 定义一个 Long 类型的字段 userid,用于存储用户的 id private Long userid; - + /** * 用户名 + * 显示在评论中的用户昵称 */ - + // 定义一个 String 类型的字段 nickname,用于存储用户名 private String nickname; - + /** * 评论内容 + * 用户针对酒店简介发表的具体评论信息 */ - + // 定义一个 String 类型的字段 content,用于存储评论内容 private String content; - + /** * 回复内容 + * 针对用户评论的回复信息 */ - + // 定义一个 String 类型的字段 reply,用于存储回复内容 private String reply; - - + + /** + * 评论添加时间 + * 使用 JsonFormat 注解指定日期在序列化时的格式为 "yyyy-MM-dd HH:mm:ss",时区为 GMT+8 + * 使用 DateTimeFormat 注解,默认接收日期格式 + */ @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat + // 定义一个 Date 类型的字段 addtime,用于存储评论的添加时间 private Date addtime; + /** + * 获取评论添加时间 + * @return 评论添加时间 + */ + // 定义 getAddtime 方法,用于获取 addtime 字段的值 public Date getAddtime() { return addtime; } + + /** + * 设置评论添加时间 + * @param addtime 要设置的评论添加时间 + */ + // 定义 setAddtime 方法,用于设置 addtime 字段的值 public void setAddtime(Date addtime) { this.addtime = addtime; } + /** + * 获取主键 id + * @return 主键 id + */ + // 定义 getId 方法,用于获取 id 字段的值 public Long getId() { return id; } + /** + * 设置主键 id + * @param id 要设置的主键 id + */ + // 定义 setId 方法,用于设置 id 字段的值 public void setId(Long id) { this.id = id; } + /** - * 设置:关联表id + * 设置关联表 id + * @param refid 要设置的关联表 id */ + // 定义 setRefid 方法,用于设置 refid 字段的值 public void setRefid(Long refid) { this.refid = refid; } + /** - * 获取:关联表id + * 获取关联表 id + * @return 关联表 id */ + // 定义 getRefid 方法,用于获取 refid 字段的值 public Long getRefid() { return refid; } + /** - * 设置:用户id + * 设置用户 id + * @param userid 要设置的用户 id */ + // 定义 setUserid 方法,用于设置 userid 字段的值 public void setUserid(Long userid) { this.userid = userid; } + /** - * 获取:用户id + * 获取用户 id + * @return 用户 id */ + // 定义 getUserid 方法,用于获取 userid 字段的值 public Long getUserid() { return userid; } + /** - * 设置:用户名 + * 设置用户名 + * @param nickname 要设置的用户名 */ + // 定义 setNickname 方法,用于设置 nickname 字段的值 public void setNickname(String nickname) { this.nickname = nickname; } + /** - * 获取:用户名 + * 获取用户名 + * @return 用户名 */ + // 定义 getNickname 方法,用于获取 nickname 字段的值 public String getNickname() { return nickname; } + /** - * 设置:评论内容 + * 设置评论内容 + * @param content 要设置的评论内容 */ + // 定义 setContent 方法,用于设置 content 字段的值 public void setContent(String content) { this.content = content; } + /** - * 获取:评论内容 + * 获取评论内容 + * @return 评论内容 */ + // 定义 getContent 方法,用于获取 content 字段的值 public String getContent() { return content; } + /** - * 设置:回复内容 + * 设置回复内容 + * @param reply 要设置的回复内容 */ + // 定义 setReply 方法,用于设置 reply 字段的值 public void setReply(String reply) { this.reply = reply; } + /** - * 获取:回复内容 + * 获取回复内容 + * @return 回复内容 */ + // 定义 getReply 方法,用于获取 reply 字段的值 public String getReply() { return reply; } - -} +} \ No newline at end of file diff --git a/back/src/main/java/com/entity/DiscussjiudiankefangEntity.java b/back/src/main/java/com/entity/DiscussjiudiankefangEntity.java index 6b02c91e..3d19d0e0 100644 --- a/back/src/main/java/com/entity/DiscussjiudiankefangEntity.java +++ b/back/src/main/java/com/entity/DiscussjiudiankefangEntity.java @@ -1,164 +1,251 @@ +// 定义该类所属的包,一般来说,实体类会被放在这个包路径下,方便管理和维护 package com.entity; +// 引入 MyBatis-Plus 框架的 TableId 注解,用于标记实体类中的主键字段 import com.baomidou.mybatisplus.annotations.TableId; +// 引入 MyBatis-Plus 框架的 TableName 注解,用于指定实体类对应的数据库表名 import com.baomidou.mybatisplus.annotations.TableName; +// 引入 JSR-303 验证注解,NotBlank 用于确保字符串字段不为 null 且去除首尾空格后长度大于 0 import javax.validation.constraints.NotBlank; +// 引入 JSR-303 验证注解,NotEmpty 用于确保集合、数组、字符串等不为空 import javax.validation.constraints.NotEmpty; +// 引入 JSR-303 验证注解,NotNull 用于确保对象字段不为 null import javax.validation.constraints.NotNull; - +// 引入 Jackson 库的 JsonIgnoreProperties 注解,可在序列化和反序列化时忽略某些属性 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +// 引入反射调用时可能抛出的 InvocationTargetException 异常类 import java.lang.reflect.InvocationTargetException; - +// 引入 Serializable 接口,实现该接口的类的对象可进行序列化和反序列化操作,便于在网络传输或存储 import java.io.Serializable; +// 引入 Date 类,用于处理日期和时间相关的数据 import java.util.Date; +// 引入 List 接口,用于表示一组对象的集合 import java.util.List; - +// 引入 Spring 框架的 DateTimeFormat 注解,用于指定日期字段在接收参数时的格式 import org.springframework.format.annotation.DateTimeFormat; +// 引入 Jackson 库的 JsonFormat 注解,用于指定日期字段在序列化时的格式 import com.fasterxml.jackson.annotation.JsonFormat; +// 引入 Apache Commons BeanUtils 工具类,可用于复制 JavaBean 的属性 import org.apache.commons.beanutils.BeanUtils; +// 引入 MyBatis-Plus 框架的 TableField 注解,可用于指定字段在数据库表中的一些属性 import com.baomidou.mybatisplus.annotations.TableField; +// 引入 MyBatis-Plus 框架的 FieldFill 枚举,用于指定字段的填充策略 import com.baomidou.mybatisplus.enums.FieldFill; +// 引入 MyBatis-Plus 框架的 IdType 枚举,用于指定主键的生成策略 import com.baomidou.mybatisplus.enums.IdType; - /** * 酒店客房评论表 * 数据库通用操作实体类(普通增删改查) - * @author - * @email + * @author + * @email * @date 2022-04-04 00:20:05 */ +// 使用 TableName 注解指定该实体类对应数据库中的 "discussjiudiankefang" 表 @TableName("discussjiudiankefang") +// 定义酒店客房评论表的实体类,使用泛型 T,实现 Serializable 接口 public class DiscussjiudiankefangEntity implements Serializable { + // 定义序列化版本号,保证在序列化和反序列化过程中,类的版本一致 private static final long serialVersionUID = 1L; - + // 无参构造函数,当创建该类的对象且不传入参数时会调用此构造函数 public DiscussjiudiankefangEntity() { - + // 目前构造函数体为空,没有额外的初始化操作 } - + + /** + * 带参数的构造函数,用于将泛型对象 t 的属性复制到当前对象 + * @param t 要复制属性的泛型对象 + */ public DiscussjiudiankefangEntity(T t) { try { + // 调用 BeanUtils 的 copyProperties 方法,将 t 对象的属性复制到当前对象 BeanUtils.copyProperties(this, t); } catch (IllegalAccessException | InvocationTargetException e) { + // 如果在属性复制过程中出现非法访问异常或者反射调用目标方法异常,进入此 catch 块 + // 这里只是简单打印异常堆栈信息,开发者可根据实际情况完善异常处理逻辑 // TODO Auto-generated catch block e.printStackTrace(); } } - + /** * 主键id + * 用于唯一标识数据库表中的每一条记录 */ + // 使用 TableId 注解标记该字段为主键 @TableId + // 定义 Long 类型的主键字段 private Long id; + /** * 关联表id + * 可能用于关联其他相关表的记录,如酒店客房信息表 */ - + // 定义 Long 类型的关联表 id 字段 private Long refid; - + /** * 用户id + * 用于唯一标识发表评论的用户 */ - + // 定义 Long 类型的用户 id 字段 private Long userid; - + /** * 用户名 + * 显示在评论中的用户昵称 */ - + // 定义 String 类型的用户名字段 private String nickname; - + /** * 评论内容 + * 用户针对酒店客房发表的具体评论信息 */ - + // 定义 String 类型的评论内容字段 private String content; - + /** * 回复内容 + * 针对用户评论的回复信息 */ - + // 定义 String 类型的回复内容字段 private String reply; - - - @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") + + /** + * 评论添加时间 + * 使用 JsonFormat 注解指定日期序列化时的格式和时区 + * 使用 DateTimeFormat 注解指定日期接收时的格式 + */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat + // 定义 Date 类型的评论添加时间字段 private Date addtime; + /** + * 获取评论添加时间 + * @return 评论添加时间 + */ + // 定义获取评论添加时间的方法 public Date getAddtime() { return addtime; } + + /** + * 设置评论添加时间 + * @param addtime 要设置的评论添加时间 + */ + // 定义设置评论添加时间的方法 public void setAddtime(Date addtime) { this.addtime = addtime; } + /** + * 获取主键id + * @return 主键id + */ + // 定义获取主键 id 的方法 public Long getId() { return id; } + /** + * 设置主键id + * @param id 要设置的主键id + */ + // 定义设置主键 id 的方法 public void setId(Long id) { this.id = id; } + /** - * 设置:关联表id + * 设置关联表id + * @param refid 要设置的关联表id */ + // 定义设置关联表 id 的方法 public void setRefid(Long refid) { this.refid = refid; } + /** - * 获取:关联表id + * 获取关联表id + * @return 关联表id */ + // 定义获取关联表 id 的方法 public Long getRefid() { return refid; } + /** - * 设置:用户id + * 设置用户id + * @param userid 要设置的用户id */ + // 定义设置用户 id 的方法 public void setUserid(Long userid) { this.userid = userid; } + /** - * 获取:用户id + * 获取用户id + * @return 用户id */ + // 定义获取用户 id 的方法 public Long getUserid() { return userid; } + /** - * 设置:用户名 + * 设置用户名 + * @param nickname 要设置的用户名 */ + // 定义设置用户名的方法 public void setNickname(String nickname) { this.nickname = nickname; } + /** - * 获取:用户名 + * 获取用户名 + * @return 用户名 */ + // 定义获取用户名的方法 public String getNickname() { return nickname; } + /** - * 设置:评论内容 + * 设置评论内容 + * @param content 要设置的评论内容 */ + // 定义设置评论内容的方法 public void setContent(String content) { this.content = content; } + /** - * 获取:评论内容 + * 获取评论内容 + * @return 评论内容 */ + // 定义获取评论内容的方法 public String getContent() { return content; } + /** - * 设置:回复内容 + * 设置回复内容 + * @param reply 要设置的回复内容 */ + // 定义设置回复内容的方法 public void setReply(String reply) { this.reply = reply; } + /** - * 获取:回复内容 + * 获取回复内容 + * @return 回复内容 */ + // 定义获取回复内容的方法 public String getReply() { return reply; } - -} +} \ No newline at end of file diff --git a/back/src/main/java/com/entity/EIException.java b/back/src/main/java/com/entity/EIException.java index 2ebfb566..2b686d22 100644 --- a/back/src/main/java/com/entity/EIException.java +++ b/back/src/main/java/com/entity/EIException.java @@ -1,52 +1,73 @@ - +// 声明该类所属的包为 com.entity package com.entity; -/** - * 自定义异常 - */ +// 自定义异常 +// 该类继承自 RuntimeException,表示这是一个运行时异常类。 +// 通常运行时异常是在程序运行过程中由于逻辑错误等原因导致的异常,不需要强制捕获处理。 public class EIException extends RuntimeException { + // 定义序列化版本号,用于在序列化和反序列化过程中确保类的版本一致性。 + // 当类的结构发生变化时,应该修改这个版本号,以避免反序列化错误。 private static final long serialVersionUID = 1L; - - private String msg; - private int code = 500; - - public EIException(String msg) { + + // 用于存储异常的详细信息描述,比如错误提示消息。 + private String msg; + // 用于存储异常的错误码,这里默认值为 500,通常 500 表示服务器内部错误。 + private int code = 500; + + // 构造函数,接受一个字符串类型的错误消息参数。 + // 调用父类(RuntimeException)的构造函数,将错误消息传递给父类, + // 同时将错误消息赋值给当前类的 msg 字段。 + public EIException(String msg) { super(msg); this.msg = msg; } - + + // 构造函数,接受一个字符串类型的错误消息参数和一个 Throwable 类型的异常对象参数。 + // 调用父类(RuntimeException)的构造函数,将错误消息和异常对象传递给父类, + // 同时将错误消息赋值给当前类的 msg 字段。 + // 这个构造函数通常用于在抛出异常时,将原始的异常信息一起传递下去。 public EIException(String msg, Throwable e) { super(msg, e); this.msg = msg; } - + + // 构造函数,接受一个字符串类型的错误消息参数和一个整数类型的错误码参数。 + // 调用父类(RuntimeException)的构造函数,将错误消息传递给父类, + // 同时将错误消息赋值给当前类的 msg 字段,将错误码赋值给当前类的 code 字段。 + // 这个构造函数可以用于自定义特定的错误码。 public EIException(String msg, int code) { super(msg); this.msg = msg; this.code = code; } - + + // 构造函数,接受一个字符串类型的错误消息参数、一个整数类型的错误码参数和一个 Throwable 类型的异常对象参数。 + // 调用父类(RuntimeException)的构造函数,将错误消息和异常对象传递给父类, + // 同时将错误消息赋值给当前类的 msg 字段,将错误码赋值给当前类的 code 字段。 + // 这个构造函数综合了前面几个构造函数的功能,既可以传递错误消息和异常对象,又可以自定义错误码。 public EIException(String msg, int code, Throwable e) { super(msg, e); this.msg = msg; this.code = code; } + // 获取异常的错误消息。 public String getMsg() { return msg; } + // 设置异常的错误消息。 public void setMsg(String msg) { this.msg = msg; } + // 获取异常的错误码。 public int getCode() { return code; } + // 设置异常的错误码。 public void setCode(int code) { this.code = code; } - - -} +} \ No newline at end of file diff --git a/back/src/main/java/com/entity/view/YonghuView.java b/back/src/main/java/com/entity/view/YonghuView.java index 9d167fbb..0602ca7d 100644 --- a/back/src/main/java/com/entity/view/YonghuView.java +++ b/back/src/main/java/com/entity/view/YonghuView.java @@ -1,36 +1,53 @@ +// 声明该类所在的包名为 com.entity.view,通常用于存放视图相关的实体类 package com.entity.view; +// 导入 YonghuEntity 类,这是一个实体类,可能与数据库中的用户表相对应 import com.entity.YonghuEntity; +// 导入 MyBatis-Plus 框架的 TableName 注解,用于指定实体类对应的数据库表名 import com.baomidou.mybatisplus.annotations.TableName; +// 导入 Apache Commons BeanUtils 工具类,用于进行 JavaBean 属性的复制操作 import org.apache.commons.beanutils.BeanUtils; +// 导入反射调用时可能抛出的异常类,在使用 BeanUtils 复制属性时可能会用到 import java.lang.reflect.InvocationTargetException; - +// 导入序列化接口,实现该接口的类的对象可以被序列化和反序列化,便于在网络传输或存储 import java.io.Serializable; - /** * 用户 - * 后端返回视图实体辅助类 + * 后端返回视图实体辅助类 * (通常后端关联的表或者自定义的字段需要返回使用) - * @author - * @email + * @author + * @email * @date 2022-04-04 00:20:04 */ +// 使用 TableName 注解指定该视图实体类对应的数据库表名为 "yonghu" @TableName("yonghu") +// 定义 YonghuView 类,它继承自 YonghuEntity 类,并且实现了 Serializable 接口 public class YonghuView extends YonghuEntity implements Serializable { + // 定义序列化版本号,用于在序列化和反序列化过程中确保类的版本一致性 private static final long serialVersionUID = 1L; + // 定义无参构造函数,当创建 YonghuView 对象时,如果不传入参数,会调用此构造函数 public YonghuView(){ + // 无参构造函数体为空,这里没有额外的初始化操作 } - - public YonghuView(YonghuEntity yonghuEntity){ - try { + + // 定义带参数的构造函数,参数为 YonghuEntity 类型的对象 + // 该构造函数的作用是将传入的 YonghuEntity 对象的属性复制到当前 YonghuView 对象中 + public YonghuView(YonghuEntity yonghuEntity){ + // 使用 try-catch 块捕获可能出现的异常 + try { + // 调用 BeanUtils 的 copyProperties 方法,将 yonghuEntity 对象的属性复制到当前对象(this)中 + // 此方法会自动匹配两个对象中相同名称的属性,并进行赋值操作 BeanUtils.copyProperties(this, yonghuEntity); } catch (IllegalAccessException | InvocationTargetException e) { + // 如果在复制属性过程中出现非法访问异常(IllegalAccessException) + // 或者反射调用目标方法时出现异常(InvocationTargetException),会进入此 catch 块 + // 这里的 TODO 表示需要开发者后续根据实际情况完善异常处理逻辑 + // 目前只是简单地打印异常堆栈信息,方便调试 // TODO Auto-generated catch block e.printStackTrace(); } - } } diff --git a/back/src/main/java/com/entity/view/YuangongView.java b/back/src/main/java/com/entity/view/YuangongView.java index 95c299d2..18df72b0 100644 --- a/back/src/main/java/com/entity/view/YuangongView.java +++ b/back/src/main/java/com/entity/view/YuangongView.java @@ -1,36 +1,53 @@ +// 定义包名,表明该类属于 com.entity.view 包,此包通常用于存放后端返回视图实体辅助类 package com.entity.view; +// 导入 YuangongEntity 类,这是员工的实体类,可能与数据库中的员工表对应 import com.entity.YuangongEntity; +// 导入 MyBatis-Plus 的 TableName 注解,用于指定实体类对应的数据库表名 import com.baomidou.mybatisplus.annotations.TableName; +// 导入 Apache Commons BeanUtils 工具类,该类提供了复制 JavaBean 属性的功能 import org.apache.commons.beanutils.BeanUtils; +// 导入反射调用时可能抛出的 InvocationTargetException 异常类 import java.lang.reflect.InvocationTargetException; - +// 导入 Serializable 接口,实现该接口的类的对象可以被序列化和反序列化 import java.io.Serializable; - /** * 员工 * 后端返回视图实体辅助类 * (通常后端关联的表或者自定义的字段需要返回使用) - * @author - * @email + * @author + * @email * @date 2022-04-04 00:20:04 */ +// 使用 TableName 注解指定该类对应的数据库表名为 "yuangong" @TableName("yuangong") +// 定义 YuangongView 类,继承自 YuangongEntity 类并实现 Serializable 接口 public class YuangongView extends YuangongEntity implements Serializable { + // 定义序列化版本号,保证序列化和反序列化过程中类的版本一致性 private static final long serialVersionUID = 1L; + // 无参构造函数,用于创建 YuangongView 类的对象时不传入任何参数的情况 public YuangongView(){ + // 构造函数体为空,目前没有需要初始化的额外操作 } - - public YuangongView(YuangongEntity yuangongEntity){ - try { + + /** + * 带参数的构造函数,用于根据 YuangongEntity 对象创建 YuangongView 对象 + * @param yuangongEntity 员工实体对象,用于复制属性到当前 YuangongView 对象 + */ + public YuangongView(YuangongEntity yuangongEntity){ + // 使用 try-catch 块捕获可能出现的异常 + try { + // 调用 BeanUtils 的 copyProperties 方法,将 yuangongEntity 对象的属性复制到当前 YuangongView 对象 + // 该方法会自动匹配两个对象中同名的属性并进行赋值 BeanUtils.copyProperties(this, yuangongEntity); } catch (IllegalAccessException | InvocationTargetException e) { + // 当出现非法访问异常(IllegalAccessException)或反射调用目标方法异常(InvocationTargetException)时进入此块 + // 这里只是简单打印异常堆栈信息,开发者可根据实际需求完善异常处理逻辑 // TODO Auto-generated catch block e.printStackTrace(); } - } -} +} \ No newline at end of file