天天看点

Mybatis的递归查询实现二级评论

最近闲来无事,在做毕业设计。前台页面需要一个评论功能,感觉三方的评论太复杂,功能也太多。就想着自己写一个简单点的,本人比较菜,方法比较笨,可能效率不高。

后端:SpringBoot + Mybatis

前端:Vue + Element Plus

Mybatis的递归查询实现二级评论

这里展示的是需要登录才能使用评论(依赖用户表),如果不需要登录,可删除<code>comment_user_id</code>,添加邮箱和昵称字段:<code>email</code>,<code>nickname</code>

1、评论表字段说明

字段名

类型

说明

id

bigint

主键

article_id

评论所在文章ID

parent_comment_id

父评论id,null表示一级评论

comment_user_id

评论发布用户ID

content

longtext

评论内容

create_time

datetime

创建时间

只展示最基本的字段,需要字段自行添加,例如:<code>version</code>、<code>deleted</code>

2、评论表建表语句

3、其他表就不展示了,下面有源码案例

<code>commentUser</code>:评论用户,一对一映射

<code>parentComment</code>:父评论,一对一映射,这里你也可以直接用parentCommentId

<code>replayComments</code>:子评论,一对多映射

mapper文件

我们来看看,<code>SQL</code>语句怎么写,还是比较复杂的,因为考虑到映射,关联的表比较多

这里使用了很多<code>LEFT JOIN</code>,可以替换成同意思的<code>WHERE</code>

mapper类

<code>CommentService</code>

<code>CommentServiceImpl</code>

我们可以看到,数据是嵌套的,这种套娃格式也是一种方案

将套娃评论改为二级,只需要在逻辑部分将二级评论的子评论(三级)等等(四级,五级...),全部改为二级评论

<code>commentNum</code> 记录了评论数量,有需要的可以返回给前端

<code>Controller</code>调用<code>listComment</code>方法

可以看到<code>id</code>为的 3 的评论已经成为二级评论了

码云地址

先到这。。。

Mybatis的递归查询实现二级评论

本文来自博客园,作者:sw-code,转载请注明原文链接:https://www.cnblogs.com/sw-code/p/15358093.html

继续阅读