前面就是配置比较麻烦,来实物了,货真价实的东西。
1、实体类构建
(1)构建实体类的属性,其中用@Entity来连接数据库
Blog
@Entity
@Table(name = "t_blog")
public class Blog {
@Id
@GeneratedValue
private Long id; //主键
private String title; //标题
@Basic(fetch = FetchType.LAZY)
@Lob
private String content; //内容
private String firstPicture; //首图
private String flag; //标记
private Integer views; //浏览次数
private boolean appreciation; //赞赏是否开启
private boolean shareStatement; //版权是否开启
private boolean commentabled; //评论是否开启
private boolean published; //是否发布
private boolean recommend; //是否推荐
@Temporal(TemporalType.TIMESTAMP)
private Date createTime; //创建时间
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime; //更新时间
}
其他类不写了
(2)实体关系
举个例子
在Blog类加上:
@ManyToOne
private Type type;
在Type类加上:
@OneToMany(mappedBy = "type")
private List<Blog> blogs = new ArrayList<>();
在新增一篇博客的时候你又想新增一个标签可以进行级联新增:
@ManyToMany(cascade = {
CascadeType.PERSIST})
private List<Tag> tags = new ArrayList<>();
(3)评论类自关联关系![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9372e11ea116daf88dc70f2ccf67e38e.png)
在Comment类中
@OneToMany(mappedBy = "parentComment")
private List<Comment> comments = new ArrayList<>();
@ManyToOne
private Comment parentComment;
2、登录管理
(1)UserService和UserRepository
Service层
UserService接口
public interface UserService {
User checkUser(String username, String password);
}
操作数据库DAO层
UserRepository接口
public interface UserRepository extends JpaRepository<User,Long> {
User findByUsernameAndPassword(String username, String password);
}
UserServiceImpl接口实现
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
public User checkUser(String username, String password) {
User user = userRepository.findByUsernameAndPassword(username, password);
return user;
}
}
(2)LoginController实现登录
web层 LoginController
@Controller
@RequestMapping("/admin"