社交项目(十一)

86 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情

书本详情页(一)

1.在BookService定义通过ID查询查询的方法

image.png

2.实现类selectById

image.png

@Override
public Book selectById(Long bookId) {
   Book book =  bookMapper.selectById(bookId);
    return book;
}

3.定义控制器方法

image.png

@GetMapping("/book/{id}")
@ResponseBody
public ModelAndView showDetail(@PathVariable("id") Long id){
    Book book =  bookService.selectById(id);
    ModelAndView mav = new ModelAndView("/detail");
   mav.addObject("book",book);
   return mav;
}

4.模板文件变量替换

image.png

5.重启项目

image.png

评论列表(二)

1.定义evaluation实体类

image.png

@TableName("evaluation")
public class Evaluation {
    @TableId(type = IdType.AUTO)
    private Long evaluationId;
    //所有评价表相关属性和getter和setter方法


    //book属性没有对应的字段,不会参与到sql自动生成  getter和setter
    @TableField(exist = false)
    private Book book;
    @TableField(exist = false)
    private Member member;
    
public Book getBook() {
    return book;
}

public void setBook(Book book) {
    this.book = book;
}

public Member getMember() {
    return member;
}

public void setMember(Member member) {
    this.member = member;
}
    }

代码说明:
- @TableField(exist = false):Book字段不是Evaluation的字段属性,不参与sql,同时新增对应的getter和setter

2.定义BookMapper

image.png

3.定义EvaluationMapper

image.png

4.定义EvaluationService接口类

public interface EvaluationService {
    public List<Evaluation> selectByBookId(Long bookId);
}

image.png

5.EvaluationServiceImpl实现类

image.png

public List<Evaluation> selectByBookId(Long bookId) {
    Book book = bookMapper.selectById(bookId);
    QueryWrapper<Evaluation> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("book_id",bookId);
    queryWrapper.eq("state","enable");
    List<Evaluation> evaluationList = evaluationMapper.selectList(queryWrapper);
    for(Evaluation eva:evaluationList){
        Member member = memberMapper.selectById(eva.getMemberId());
        eva.setMember(member);
        eva.setBook(book);
    }
    return evaluationList;
}

代码说明:

  • 在for循环中,通过eva.getMemberId获取用户相关信息,然后将其设置到Member实体中

6.控制器进行赋值

image.png

7.评论内容完善

image.png

8.重启项目

image.png 我们可以看到book和member对象