SpringBoot搭建个人博客--实体类构建

—— 本文转自onestar:【SpringBoot搭建个人博客】- 实体类构建(五)

  1. 博客实体类

分析:

问:博客实体类需要设置哪些变量呢?

答:数据库中设计的属性:主键(id)、博客标题(title)、博客内容(content)、首图地址(firstPicture)、标记是否原创(flag)、浏览次数(views)、评论次数(commentCount)、是否开启赞赏(appreciation)、是否开启版权(shareStatement)、是否开启评论(commentabled)、是否发布(published)、是否推荐(recommend)、创建时间(createTime)、更新时间(updateTime)、博客描述(description)

问:这些属性就够了吗?还记不记得在之前设计表结构的时候,博客和分类是多对一的关系,博客和用户是多对一的关系,博客和评论是一对多的关系,在这些对应关系中,博客表和分类表、用户表、评论表都有关联,这里就要涉及到Mybatis的多对一和一对多的关系了,因此在实体类中也要体现出来,要如何体现呢?

答:除了上述变量外,还需要分类(type)、用户(user)、评论集合(comments)以及分类id(typeId)、用户id(userId),用来实现Mybatis的多表查询和相关功能。

在entity目录下创建Blog博客实体类,代码如下(省略get、set和toString方法):

package com.star.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Description: 博客实体类
 */
public class Blog {

    private Long id;
    private String title;
    private String content;
    private String firstPicture;
    private String flag;
    private Integer views;
    private Integer commentCount;
    private boolean appreciation;
    private boolean shareStatement;
    private boolean commentabled;
    private boolean published;
    private boolean recommend;
    private Date createTime;
    private Date updateTime;
    private String description;

    private Type type;
    private User user;
    private Long typeId;
    private Long userId;
    private List<Comment> comments = new ArrayList<>();

}
  1. 分类实体类
    分析:

问:分类实体类需要设置哪些变量呢?

答:一个id和一个分类名称不就可以了吗。

问:可以吗?还记不记得在之前设计表结构的时候,博客和分类是多对一的关系,一篇博客对应一个分类,一个分类可以对应多篇博客,这里就要涉及到Mybatis的多对一和一对多的关系了,因此在实体类中也要体现出来,要如何体现呢?

答:除了id和分类名称外,还需要定义“博客”变量

在entity目录下创建Type分类实体类,代码如下(省略get、set和toString方法):

package com.star.entity;
import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 分类实体类
 */
public class Type {

    private Long id;
    private String name;
    private List<Blog> blogs = new ArrayList<>();

}
  1. 评论实体类
    分析:

问:评论实体类需要设置哪些变量呢?

答:数据库中设计的属性:主键(id)、昵称(nickname)、邮箱(email)、头像(avatar)、评论内容(content)、创建时间(createTime)、博客id(blogId)、父评论id(parentCommentId)、是否为管理员评论(adminComment)

问:够了吗?同样,在之前表结构设计的时候,博客和评论是一对多的关系,评论和回复是一对多的关系,在实体类中当然也要体现出来,要如何体现呢?

答:除了上述变量外,还需要回复评论集合(replyComments)用来存储回复信息、父评论昵称(parentNickname)用来设置父级评论的id以及父评论(parentComment)用来显示父级评论姓名

在entity目录下创建Comment评论实体类,代码如下(省略get、set和toString方法):

package com.star.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Description: 评论实体类
 */
public class Comment {

    private Long id;
    private String nickname;
    private String email;
    private String content;
    private String avatar;
    private Date createTime;
    private Long blogId;
    private Long parentCommentId;
    private boolean adminComment;

    //回复评论
    private List<Comment> replyComments = new ArrayList<>();
    private Comment parentComment;
    private String parentNickname;

}
  1. 留言实体类
    留言和评论是一样的,只是少了博客id(blogId)变量,这里就不做分析,直接给出代码(省略get、set和toString方法):
package com.star.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Description: 留言实体类
 */
public class Message {

    private Long id;
    private String nickname;
    private String email;
    private String content;
    private String avatar;
    private Date createTime;
    private Long parentMessageId;
    private boolean adminMessage;

    //回复留言
    private List<Message> replyMessages = new ArrayList<>();
    private Message parentMessage;
    private String parentNickname;

}
  1. 友链实体类
    友链没有和其他表进行关联,只有单表查询,变量就是属性,就不做分析,直接给代码(省略get、set和toString方法):
package com.star.entity;

import java.util.Date;
/**
 * @Description: 友链实体类
 */
public class FriendLink {

    private Long id;
    private String blogname;
    private String blogaddress;
    private String pictureaddress;
    private Date createTime;

}
  1. 相册实体类
    相册没有和其他表进行关联,只有单表查询,变量就是属性,就不做分析,直接给代码(省略get、set和toString方法):
package com.star.entity;

/**
 * @Description: 相册实体类
 */
public class Picture {

    private Long id;
    private String picturename;
    private String picturetime;
    private String pictureaddress;
    private String picturedescription;

}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当前课程中博客项目的实战源码是我在 GitHub上开源项目 My-Blog,目前已有 3000 多个 star:本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 个人博客项目功能的讲解,通过本课程的学习,不仅仅让你掌握基本的 Spring Boot 开发能力以及 Spring Boot 项目的大部分开发使用场景,同时帮你提前甄别和处理掉将要遇到的技术难点,认真学完这个课程后,你将会对 Spring Boot 有更加深入而全面的了解,同时你也会得到一个大家都在使用的博客系统源码,你可以根据自己的需求和想法进行改造,也可以直接使用它来作为自己的个人网站,这个课程一定会给你带来巨大的收获。作者寄语本课程录制于 2020 年,代码基于 Spring Boot 2.x 版本。到目前为止,Spring Boot 技术栈也有一些版本升级,比如 Spring Boot 2.7 发版、Spring Boot 3.x 版本发布正式版本。对于这些情况,笔者会在本课程实战项目的开源仓库中创建不同的代码分支,保持实战项目的源码更新,保证读者朋友们不会学习过气的知识点。课程特色 课程内容紧贴 Spring Boot 技术栈,涵盖大部分 Spring Boot 使用场景。开发教程详细完整、文档资源齐全、实验过程循序渐进简单明了。实践项目页面美观且实用,交互效果完美。包含从零搭建项目、以及完整的后台管理系统和博客展示系统两个系统的功能开发流程。技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,对于提升你的市场竞争力有一定的帮助。实战项目预览    

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值