记录篇——SpringBoot开发个人博客(三)

本文介绍了使用SpringBoot开发个人博客时,如何利用JPA进行动态查询,避免手写SQL语句。同时讲解了创建MarkdownUtils和MyBeanUtils两个实用工具类,以及实现全局搜索功能的步骤,包括在IndexController、DAO层和Service层的操作。最后,文章详细阐述了评论功能的实现,包括评论提交、回复、列表展示和管理员回复的逻辑处理。
摘要由CSDN通过智能技术生成

1、JPA动态查询方法(不用写SQL语句)

(1)在DAO层继承JpaSpecificationExecutor接口
public interface BlogRepository extends JpaRepository<Blog, Long>, JpaSpecificationExecutor<Blog> 
(2)在BlogServiceImpl里面
   @Override
    public Page<Blog> listBlog(Pageable pageable, Blog blog) {
   
        return blogRepository.findAll(new Specification<Blog>() {
   
            @Override
          //  动态查询条件
            public Predicate toPredicate(Root<Blog> root, CriteriaQuery<?> cq, CriteriaBuilder cb) {
   
                List<Predicate> predicates = new ArrayList<>();
          //  标题查询
                if (!"".equals(blog.getTitle()) && blog.getTitle() != null) {
   
                    predicates.add(cb.like(root.<String>get("title"), "%"+blog.getTitle()+"%"));
                }
          //  分类查询条件
                if (blog.getType().getId() != null) {
   
                    predicates.add(cb.equal(root.<Type>get("type").get("id"), blog.getType().getId()));
                }
                if (blog.isRecommend()) {
   
                    predicates.add(cb.equal(root.<Boolean>get("recommend"), blog.isRecommend()));
                }
                cq.where(predicates.toArray(new Predicate[predicates.size()]));
                return null;
            }
        },pageable);
    }
(3)在web层BlogController里
    @GetMapping("/blogs")
    public String blogs(@PageableDefault(size 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值