博主主页:猫头鹰源码
博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战
主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询
项目介绍:
该系统基于springboot技术,mysql数据库,页面采用html,具有完整的业务逻辑,适合选题:springboot、动漫、论坛、动漫论坛等。
项目功能:
本项目分为管理员与普通用户两种角色
管理员角色包含以下功能:
- 帖子管理
- 分类管理
- 标签管理
- 发布帖子
用户角色包含以下功能:
- 帖子浏览、帖子搜索、评论帖子
系统包含技术:
后端:springboot、jpa
前端:js,css等,html页面
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8
部分截图说明:
下面是首页
查看帖子
帖子详情
评论
查看所有帖子
登录
后台-分类管理
后台-标签管理
后台-论坛
后台-新增帖子
部分代码:
评论操作
@GetMapping("/comments/{cartoonId}")
public String comments( @PathVariable Long cartoonId, Model model) {
model.addAttribute("comments", commentService.listCommentByCartoonId(cartoonId));
return "details :: commentList";
}
@PostMapping("/comments")
public String post(Comment comment, HttpSession session) {
Long cartoonId = comment.getCartoon().getId();
comment.setCartoon(controllerService.getCartoon(cartoonId));
User user= (User) session.getAttribute("user");
if(user!=null){
comment.setAvatar(user.getAvatar());
comment.setAdminComment(true);
}else {
comment.setAvatar(avatar);
}
commentService.saveComment(comment);
return "redirect:/comments/" + cartoonId;
}
查询帖子
@Override
public Page<Cartoon> listCartoon(Pageable pageable, CartoonQuery cartoon) {
return cartoonRepository.findAll(new Specification<Cartoon>() {
@Override
public Predicate toPredicate(Root<Cartoon> root, CriteriaQuery<?> cq, CriteriaBuilder cb) {
List<Predicate> predicates=new ArrayList<>();
//动态查询条件
//TODO 1 查询标题
if(!"".equals(cartoon.getTitle()) && cartoon.getTitle()!=null){
predicates.add(cb.like(root.<String>get("title"),"%"+cartoon.getTitle()+"%"));
}
//TODO 2 查询分类
if(cartoon.getTypeId()!=null){
predicates.add(cb.equal(root.<Type>get("type").get("id"),cartoon.getTypeId()));
}
//TODO 3 是否推荐
if(cartoon.isRecommend()){
predicates.add(cb.equal(root.<Boolean>get("recommend"),cartoon.isRecommend()));
}
cq.where(predicates.toArray(new Predicate[predicates.size()]));
return null;
}
},pageable);
}
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~