开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情
书本详情页(一)
1.在BookService定义通过ID查询查询的方法
2.实现类selectById
@Override
public Book selectById(Long bookId) {
Book book = bookMapper.selectById(bookId);
return book;
}
3.定义控制器方法
@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.模板文件变量替换
5.重启项目
评论列表(二)
1.定义evaluation实体类
@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
3.定义EvaluationMapper
4.定义EvaluationService接口类
public interface EvaluationService {
public List<Evaluation> selectByBookId(Long bookId);
}
5.EvaluationServiceImpl实现类
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.控制器进行赋值
7.评论内容完善
8.重启项目
我们可以看到book和member对象