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 模板中,循环子集,例如<td th:each="subComment : $commentZ.subComments">...</td>
好吧,我不明白你的意思。我努力了。我会让我的问题更清楚
阅读您现在分享的叶子链接
哎呀!使用Spring Data 连接到您的数据库,而不是普通的 JDBC。也绝对不要把这段代码放在你的控制器中,它会导致一团糟。
【参考方案1】:
我不得不考虑一下如何回答这个问题,我认为你需要做的就是深呼吸并做一些阅读。
您需要了解MVC 架构模式。您正在使用C
,正如您使用带有@RequestMapping
注释的Spring 控制器所证明的那样,您正在使用V
,正如您使用Thymeleaf 所证明的那样。您正在使用 M
,正如您使用 Spring Model
对象所证明的那样,您正在为其分配属性,但您并没有像我们大多数人那样使用模型。您应该使用Spring Data 来连接和管理您的数据。其中隐含的是使用纯 Java 对象作为从表中放置一行的位置(这些对象不同地称为POJO
或entity
对象)。 ORM 工具处理表行和entity
对象之间的映射任务。 Spring Data 使用这些工具,例如 Hibernate。
因此,您将有一个评论 entity
(您将评论表中的行放入其中)和评论 entity
(您将 cmets 表中的行放入其中),包括评论中的任何 cmets (子评论)。
Review
将包含一堆属性,包括Comment
实体的列表。 Comment
将包含子 cmets 列表。
此时,您可以使用 Thymeleaf 遍历 Review
实体列表以访问其*** Comment
实体。对于每个Comment
实体,您将循环遍历子Comment
s。中间的部分,你必须自己做。
【讨论】:
所以我需要阅读 spring 数据并将其换成 JDCB 吗?我的架构是 Review、Article、Preview ......我需要从任意 1 个表中随机选择 1 行。可以说它是评论的土地,第 6 行。所以我有 review_comment 表和 review_comment_sub 表。需要从评论行中提取所有数据,提取该行的所有 cmets,以及每个评论的所有子 cmets。我可以使用 spring 数据来做到这一点 Ben 你有兴趣做一些有偿工作吗?一天左右? 让我们在别处聊天。通过我的推特账号给我发私信。 在推特上关注我以上是关于Spring Boot 传递评论 子评论的主要内容,如果未能解决你的问题,请参考以下文章
无法在spring boot data rest中直接发布到子资源