说明:
(1)本篇博客任务:在首页,点击某个图书后,进入该图书的详情页;然后,本篇博客要完成的是,显示下面的短评部分;
(2)本篇博客:
● 一个和 【SSM开发书评网14:图书列表分页及查询四:图书分页查询(3);(JS模板引擎Art-Template入门;星型评分插件raty入门)】对比时,业务逻辑和处理方式的对比和分析;
● 一个新知识,或者说是一个骚操作:Mybatis-Plus的【@TableField(exist = false)所谓关联查询时,给对象附加对象的策略:这可以让如Evaluation对象去承载evaluation表中没有对应字段的属性;
目录
4.开发service,调用Dao层代码,完成图书短评的查询工作;
5.开发Controller,调用Service层的代码;渲染数据,跳转到detail.ftl详情页;
6.1.detail.ftl前端文件,获取短评数据:其实是,获取短评数据的大部分内容;(这儿前端在获取数据的时候,有一个关于业务场景的分析和比对,比较重要!!!)
(3)利用Mybatis-Plus的【@TableField(exist = false),在Evaluation中添加Member属性;
(4) 在EvaluationServiceImpl中,调用member的Dao层代码,以给Evaluation的Member属性赋值;
(5)在detail.ftl中,就可以获取Member信息,即获取会员昵称了;
零:前置分析和说明;
1.图书的评论信息在evaluation表中;
一:正式开发;
1.开发实体类,与底层数据表对应;
因为我们要操作evaluation表,所以需要创建一个实体类以应对该表;
Evaluation实体类:
package com.imooc.reader.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.util.Date; @TableName("evaluation") public class evaluation { @TableId(type = IdType.AUTO) private Long evaluationId; private Long bookId; private String content; private Integer score; private Long memberId; private Date createTime; private Integer enjoy; private String state; private String disableReason; private Date disableTime; public Long getEvaluationId() { return evaluationId; } public void setEvaluationId(Long evaluationId) { this.evaluationId = evaluationId; } public Long getBookId() { return bookId; } public void setBookId(Long bookId) { this.bookId = bookId; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Integer getScore() { return score; } public void setScore(Integer score) { this.score = score; } public Long getMemberId() { return memberId; } public void setMemberId(Long memberId) { this.memberId = memberId; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Integer getEnjoy() { return enjoy; } public void setEnjoy(Integer enjoy) { this.enjoy = enjoy; } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getDisableReason() { return disableReason; } public void setDisableReason(String disableReason) { this.disableReason = disableReason; } public Date getDisableTime() { return disableTime; } public void setDisableTime(Date disableTime) { this.disableTime = disableTime; } }
说明:
(1)这个没什么好说的,前面介绍过好多次了,保证属性和evaluation表的表字段名一致,别写错就行了;
(2)Date类型的属性,其类型是【java.util.Date】,别弄错了;
2.开发【Mapper接口】;
EvaluationMapper接口:
package com.imooc.reader.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.imooc.reader.entity.Evaluation; public interface EvaluationMapper extends BaseMapper<Evaluation>{ }
说明:
(1)千万别忘记书写泛型;
3.开发mapper接口,对应的【xml】;