Spring Boot 传递评论 子评论

Posted

技术标签:

【中文标题】Spring Boot 传递评论 子评论【英文标题】:Spring Boot Passing Comments Sub Comments 【发布时间】:2016-11-30 20:37:04 【问题描述】:

我无法弄清楚如何将我的 cmets 和子 cmets 传递到我的页面

所以我需要传递 N row_comment & N row_sub_comment(对于每个评论)

例如,我的评论可以有 4 条评论 第一条评论有 16 个子 cmets 第二条评论有 6 个子 cmets 第三条评论有 26 个子 cmets 带有 3 个子 cmets 的第 4 条评论

我的 java 需要从数据库中提取它们并使用 model.AddAttribute 将它们传递出去

@RequestMapping("/")
public String home(Model model) 

    if (content_comment_status == true)
    
    try 
        connection = getConnection();
        stmt = connection.createStatement();

        sql =   "SELECT preview_comment_text, preview_Comment_id
                 FROM preview_comment
                 WHERE preview_id = 4;";

        rs = stmt.executeQuery(sql);
        sb = new StringBuffer();
        while (rs.next()) 
        
            sub_preview_comment_id = rs.getString("preview_comment_id");
            preview_comment_text = rs.getString("preview_comment_text");                
                try 

                     // 
                    connection = getConnection();
                    stmt = connection.createStatement();

                    sql =   "SELECT sub_preview_comment_text,                       sub_preview_comment_id
                             FROM sub_preview_comment
                             WHERE preview_comment_id = from_outside;";

                    rs = stmt.executeQuery(sql);
                    sb = new StringBuffer();
                    while (rs.next())  
                        sub_comment_text = rs.getString("sub_comment_text ");
                        sub_comment_id = rs.getString("sub_comment_id");

                    
                    stmt.close();
                    connection.close();
                catch(Exception e) return e.toString();
        
        stmt.close();
        connection.close();
    catch(Exception e) return e.toString();
    

model.addAttribute"stuff", java_variables
I have to pass out N comments and N sub comments somehow

return home;

我有三个名为“review”、“cmets”和“sub_cmets”的表 到目前为止,我已经使用上述方法将评论打印到页面上。但是一条评论可能有 cmets,每条评论甚至可能有子 cmets

如何将这些不同数量的内容传递到主页 我知道这样的例子

html HTML 页面 HTML 页面

<tr th:each="comment: $comment">
    <td></td>
    <td th:text="$comment.comment_text" ></td>
    <td th:text="$comment.username" ></td>
              <table>
               and also N sub comments need to come oput,,, like in a blob where we have comments and sub commenst
               for each comment
              </table>
</tr>
</table>

for(i = 0; i <= comments_count; i++)

print out comment;
for(i = 0; i <= sub_comments_count; i++)

printout our sub comments for this comment above


【问题讨论】:

请注意,$comment 引用了您的 cmets 列表,而 commentZ 是个人评论,请参阅 the Thymeleaf tutorial 我会将评论与您的​​评论实体中的子集相关联,然后在 Thymeleaf 模板中,循环子集,例如&lt;td th:each="subComment : $commentZ.subComments"&gt;...&lt;/td&gt; 好吧,我不明白你的意思。我努力了。我会让我的问题更清楚 阅读您现在分享的叶子链接 哎呀!使用Spring Data 连接到您的数据库,而不是普通的 JDBC。也绝对不要把这段代码放在你的控制器中,它会导致一团糟。 【参考方案1】:

我不得不考虑一下如何回答这个问题,我认为你需要做的就是深呼吸并做一些阅读。

您需要了解MVC 架构模式。您正在使用C,正如您使用带有@RequestMapping 注释的Spring 控制器所证明的那样,您正在使用V,正如您使用Thymeleaf 所证明的那样。您正在使用 M,正如您使用 Spring Model 对象所证明的那样,您正在为其分配属性,但您并没有像我们大多数人那样使用模型。您应该使用Spring Data 来连接和管理您的数据。其中隐含的是使用纯 Java 对象作为从表中放置一行的位置(这些对象不同地称为POJOentity 对象)。 ORM 工具处理表行和entity 对象之间的映射任务。 Spring Data 使用这些工具,例如 Hibernate。

因此,您将有一个评论 entity(您将评论表中的行放入其中)和评论 entity(您将 cmets 表中的行放入其中),包括评论中的任何 cmets (子评论)。

Review 将包含一堆属性,包括Comment 实体的列表。 Comment 将包含子 cmets 列表。

此时,您可以使用 Thymeleaf 遍历 Review 实体列表以访问其*** Comment 实体。对于每个Comment 实体,您将循环遍历子Comments。中间的部分,你必须自己做。

【讨论】:

所以我需要阅读 spring 数据并将其换成 JDCB 吗?我的架构是 Review、Article、Preview ......我需要从任意 1 个表中随机选择 1 行。可以说它是评论的土地,第 6 行。所以我有 review_comment 表和 review_comment_sub 表。需要从评论行中提取所有数据,提取该行的所有 cmets,以及每个评论的所有子 cmets。我可以使用 spring 数据来做到这一点 Ben 你有兴趣做一些有偿工作吗?一天左右? 让我们在别处聊天。通过我的推特账号给我发私信。 在推特上关注我

以上是关于Spring Boot 传递评论 子评论的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot制作个人博客-博客详情评论

Vue把父组件的方法传递给子组件调用(评论列表例子)

无法在spring boot data rest中直接发布到子资源

Spring Boot整合MyBatis

Spring Boot制作个人博客-框架搭建(设计与规范,实体类构建)

基于Spring Boot的个人博客系统(源码+数据库)