原创文章不允许转载, 版权归开发俱乐部所有
前面两节补充了一下开发博客要用到的东西,这一节开始正式开发博客了
建实体类
首先把博客要用到的几个实体类建出来,这里要建以下几个实体类
- 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足够解决问题了
如果大家对关联有兴趣,想了解一下的话,可以在下方评论,我会另外加一篇文章进行说明用法
目前还没有回答,快来帮帮TA吧!