留言(评论)功能实现
思路:
1 展示 两级 父级留言——子级留言
2 内部数据存储格式 栈的格式—— 一级留言-二级留言-三级等...
3 实现
首先将一级留言循环取出来 循环中通过一级留言获取二级留言
并嵌套循环把二级留言放入到一个temp(中间站)中并把它标识属性父级留言id 通过(递归的方法)二级留言获取到3,4,5,n级....等留言 并且把他们都标记一级留言为父级
@Autowired MessageMapper messageMapper; private List<Message> temp = new ArrayList<>();//中间栈 二级评论 public List<Message> First(){ List<Message> firstmessage = messageMapper.findMessageByParentid(-1);//获取一级留言 if (firstmessage.size()>0) {//判断是否存在留言 for (Message message : firstmessage) {//循环一级留言 int firstmid = message.getMid(); String firstname = message.getUsername(); Second(firstmid, firstname);//通过一级获取二级留言(参数为父级id和父级name) message.setMessages(temp);//子级留言全部存入中间站 把它加到这个父级留言里面 temp = new ArrayList<Message>(); } } return firstmessage; } public void Second(int pid,String pname){ List<Message> secondmessage = messageMapper.findMessageByParentid(pid);//通过父级id获取子级留言 if (secondmessage.size()>0){//判断是否存在子级留言 for (Message message : secondmessage) {//循环留言 message.setParentname(pname);//把留言赋值父name temp.add(message);//加入到中间站 Third(message);//获取3-n级留言 参数为二级留言 } } } public void Third(Message secondmessage){ List<Message> thirdmessage = messageMapper.findMessageByParentid(secondmessage.getMid());//通过父级id获取子级留言 String pname = secondmessage.getUsername();//获取父级name if (thirdmessage.size()>0){ for (Message message : thirdmessage) {//循环 message.setParentname(pname);//把留言赋值父name temp.add(message);//加入中间站 Third(message);//把自己当作父级 递归找出所有子级 结束之后就到第一个函数那里 然后中间站就存放好了所有关于一级留言的子留言 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理