使用Java语言如何实现评论回复功能

  介绍

这期内容当中小编将会给大家带来有关使用Java语言如何实现评论回复功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强>一、分类方式

<强> 1,单一型

单一型评论方式就是日常论坛之中的盖楼的方式

用户只能根据所在的文章或者问题进行单一回复,评论之间没有互动

类似于问答形式。提出问题,然后回答,一对多关系。这些回答之间没有任何联系

使用Java语言如何实现评论回复功能

<强> 2,嵌套型

嵌套型评论方式会对有回复的评论进行递归,会造成后端性能不佳,而且对于前端的展示也不是很友好

使用Java语言如何实现评论回复功能

<强> 3,两层型

两层型评论方式就是除了一级评论之外,无论是对于该评论的回复还是对于回复的回复都统一在第二层

使用Java语言如何实现评论回复功能

就以最常见的博客来说,不同的分类方式实现原理不一样

<强> 1,单一型

我们只需要在评论的数据表格中添加博客id即可,查询出相对应的数据直接进行展示即可

 select *从评论blog_id=# {blog_id} 

<强> 2,嵌套型

嵌套型的评论方式所需要的数据结构是树状型的,评论多起来的话层级结构会变得很复杂,对于性能消耗也是很巨大,【不推荐】

实现原理为我们会在评论表之中添加一个【parent_id】字段,定义评论和回复为父子级的关系,评论为父级,回复为子级,默认为【1】,表示为没有父级,

创建表“评论”(   “id”int (11) not null auto_increment评论& # 39;主键id # 39;,   “昵称”varchar(255)默认空评论& # 39;评论者昵称& # 39;,   《阿凡达》varchar(255)评论& # 39;评论头像& # 39;,   “内容”varchar(255)默认空评论& # 39;评论的内容& # 39;,   blog_id int(11)默认空评论& # 39;评论的博客id # 39;,   parent_id int(11)默认& # 39;1 & # 39;评论& # 39;父级评论id # 39;,   主键(“id”)   )评论& # 39;评论表& # 39;;

需要使用递归和链表进行循环遍历插入回复

设计如下:

内容。java

私有静态最终长serialVersionUID l=1;      @ApiModelProperty(值=https://www.yisu.com/zixun/敝骷黫d”)   @TableId (value=" id ",输入=IdType.ASSIGN_ID)   私人整数id;      @ApiModelProperty (value="用户昵称”)   @TableField(“昵称”)   私人字符串昵称;      @ApiModelProperty (value="头像”)   @TableField(《阿凡达》)   私人字符串《阿凡达》;      @ApiModelProperty (value="评论”)   @TableField(“评论”)   私人字符串评论;      @ApiModelProperty (value="博客id”)   @TableField (“blog_id”)   私人整数看;      @ApiModelProperty (value="回复评论id”)   @TableField (“parent_id”)   私人整数parentId;

DTO设计

ContentDTO。java

@ data   @NoArgsConstructor   @AllArgsConstructor   @Accessors(链=true)   @ApiModel(值=https://www.yisu.com/zixun/逼缆勰P汀?   @JsonIgnoreProperties(值={“处理器”})   公开课ContentDTO {   私人int id;   私人字符串昵称;   私人字符串内容;   私人列表孩子;   }

使用mybatis做为持久层框架,编写sql查询语句进行嵌套查询,

 & lt; resultMap id=癱ommentDTOMap"类型=癱om.zukxu.items.comment.entity.ContentDTO"比;
  & lt; id属性=癷d"列=癱omment_id"祝辞& lt;/id>
  & lt;结果属性=皀ickname"列=皀ickname"祝辞& lt;/result>
  & lt;结果属性=癱ontent"列=癱ontent"祝辞& lt;/result>
  
  & lt;协会财产=癱hildren"
  选择=癱om.zukxu.items.comment.mapper.ContentMapper.selectCommentById"列=皗看=blog_id parentId=comment_id}“;
  fetchType=發azy"比;
  & lt;/association>
  & lt;/resultMap>
  
  & lt;选择id=皊electCommentById"resultMap=癱ommentDTOMap"比;
  选择comment_id,昵称,内容、blog_id parent_id从博客blog_id=#{看}和parent_id=# {parentId}
  & lt;/select> 

使用Java语言如何实现评论回复功能