(四)spring-boot教程,开发个人博客:创建博客实体类

avatar

前面两节补充了一下开发博客要用到的东西,这一节开始正式开发博客了

建实体类

首先把博客要用到的几个实体类建出来,这里要建以下几个实体类

  • Post
  • Comment
  • User
实体类 说明
Post 博客类,存放博客内容的
Comment 对博客的评论内容,因为这里做的是单人博客,所以不会涉及到用户登录,所以这个类里会增加昵称,邮箱,个人站点,评论过后自动保存在cookie里,下次评论自动加载
User 这个用户只作为博主发博客时使用,不是多人博客的意思

另外,博客的分类跟标签,我这里用两个字段存储,后面会讲解怎么用它们

具体代码如下

User.java

@Entity
@Table
public class User implements Serializable {

  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Integer id;
  private String username;
  private String password;
  // getter, setter
}

Post.java

@Entity
@Table
public class Post implements Serializable {
  private static final long serialVersionUID = 1L;
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Integer id;
  // 用户Id
  private Integer userId;
  // 标题
  private String title;
  // 内容
  @Column(columnDefinition = "text")
  private String content;
  // 发布时间
  private Date inTime;
  // 修改时间
  private Date modifyTime;
  // 博客被查看的次数
  private Integer view;
  // 博客的评论数
  private Integer commentCount;
  // 博客分类
  private String categories;
  // 博客标签
  private String tags;
  // getter, setter
}

Comment.java

@Entity
@Table
public class Comment implements Serializable {
  private static final long serialVersionUID = 1L;
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Integer id;
  // 博客的Id
  private Integer postId;
  // 用户名称
  private String username;
  // 用户邮箱
  private String email;
  // 用户个人站点
  private String url;
  // 评论内容
  @Column(columnDefinition = "text")
  private String content;
  // 评论时间
  private Date inTime;
  // getter, setter
}

注解说明

注解 说明
@Entity 表示这是个实体类,JPA规范,没记错的话,这个注解不写也是没有问题的
@Table 表示这个类是要映射到数据库,可以通过 name="user" 来指定生成到数据库里表名,如果不指定则为类名
@Id 指定生成表的主键字段,一般都是Integer类型的,名称为id
@GeneratedValue 指定生成表的主键生成策略,自从Spring-Boot2.x开始默认的生成策略不在是自增了,所以这个地方要指定 strategy = GenerationType.IDENTITY 即为自增策略
@Column 定义类属性映射到表字段的类型,可以设置不为空、唯一、字段类型、字段长度等字段属性,content在这里被指定了一个 columnDefinition = "text" 表示生成表字段类型为 TEXT 因为如果用默认的类型,它会生成 VARCHAR(255) 这对于博客内容来说,长度太少了,所以这里将其映射成 TEXT

其它说明

看上面的类属性会发现我这里没有用 spring-boot-data-jpa 里的关联,也就是 多对一 多对多 等,这里主要是考虑到用关联会让很多新手比较晕,我们毕竟是写一个博客给自己用,用一个id足够解决问题了

如果大家对关联有兴趣,想了解一下的话,可以在下方评论,我会另外加一篇文章进行说明用法

0 条评论

目前还没有回答,快来帮帮TA吧!

添加一条评论 请尽量发布对他人有帮助的评论

登录后可发布评论

登录 | Github登录