Java微型博客系统——读取博客文章的实现

读取博客的实现本章主要完成了博客文字的数据库读取,以及公共首页的所有文章展示页面。完成通过点击文章标题进入博客的功能。1.文章的数据库设计id为主键,account为外键,content为内容。取名可能不太符合规范,做之前没有考虑好。content的类型为TEXT。各种类型能存的数据大小如下:TINYTEXT 256bytesTEXT 64kbMEDIUMTEXT 16MbLONGTEXT 4GB2.公众页面的设计公众页面可以看见所有文章的标题,通过点击想看的文章即可进入文章页面,显示
摘要由CSDN通过智能技术生成

读取博客文章的实现

本章主要完成了博客文字的数据库读取,以及公共首页的所有文章展示页面。完成通过点击文章标题进入博客的功能。
ps:
后续来看,这篇文章中的部分数据库查找的算法比较累赘,比如查找文章内容的算法甚至把所有数据都读出来了,在我的“Java微型博客系统——Redis和MySQL实现多级缓存”文章中有对这一部分的修改。大家如果要学习的话可以看看结果集查询的结构,查数据的时候不需要像我那样读很多没有的数据。

1.文章的数据库设计

id为主键,account为外键,content为内容。取名可能不太符合规范,做之前没有考虑好。content的类型为TEXT。
各种类型能存的数据大小如下:
TINYTEXT 256bytes
TEXT 64kb
MEDIUMTEXT 16Mb
LONGTEXT 4GB
在这里插入图片描述

2.公众页面的设计

公众页面可以看见所有文章的标题,通过点击想看的文章即可进入文章页面,显示文章的内容。

2.1html页面设计

这里遍历了后端传来的一个articles对象链表,展示了所有的文章标题,并提供了进入文章的点击按钮。

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>看看大家的博客</title>
</head>
<body>

看看有什么喜欢的博客吧:

<h4>
    <div th:each="article:${articles}">
        <form action="/zhz/toArticle" method="get">
            <strong th:text="${article.title}"></strong>
            <input name="articleID" th:value="${article.id}" hidden>
            <input name="articleTitle" th:value="${article.title}" hidden>
            <input type="submit" value="转到文章">
        </form>
    </div>
</h4>

</body>
</html>

效果图:
在这里插入图片描述

2.2对应controller的编写

controller首先通过myData接口函数getAllArticles,从zookeeper获得provider提供的服务,得到了文章编号和名字的键值对。再将其封装成对象传给前端,方便前端的显示。

@Controller
public class ToPublicMainController {
   
    @DubboReference
    private MyData myData;
    @RequestMapping("/zhz/toPublicMain")
    public String toPublicMain(Model model){
   
        //获取所有的文章编号和名字的键值对
        Map<Integer, String> allArticles = myData.getAllArticles();
        //得到所有的keys
        Set<Integer> keys = allArticles.keySet();
        List<Article> articles = new ArrayList<>();
        for (Integer key : keys) {
   
            //遍历所有的键值对,存到新的类中,放在list里,传给前端
            articles.add(new Article(key,allArticles.get(key)));
        }
        System.out.println(articles.toString());
        model.addAttribute("articles",articles);
        return "publicMain";
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值