SSM开发书评网18:图书详情页开发二:显示评论列表;(第一次使用了Mybatis-Plus的【@TableField(exist = false),去应对对象关联查询的需求】)

说明:

(1)本篇博客任务:在首页,点击某个图书后,进入该图书的详情页;然后,本篇博客要完成的是,显示下面的短评部分;

(2)本篇博客:

          ● 一个和 【SSM开发书评网14:图书列表分页及查询四:图书分页查询(3);(JS模板引擎Art-Template入门;星型评分插件raty入门)】对比时,业务逻辑和处理方式的对比和分析;

          ● 一个新知识,或者说是一个骚操作Mybatis-Plus的【@TableField(exist = false)所谓关联查询时,给对象附加对象的策略:这可以让如Evaluation对象去承载evaluation表中没有对应字段的属性;

目录

零:前置分析和说明;

1.图书的评论信息在evaluation表中;

一:正式开发;

1.开发实体类,与底层数据表对应;

2.开发【Mapper接口】;

3.开发mapper接口,对应的【xml】;

4.开发service,调用Dao层代码,完成图书短评的查询工作;

(1)EvaluationService接口; 

(2)EvaluationServiceImpl实现类; 

5.开发Controller,调用Service层的代码;渲染数据,跳转到detail.ftl详情页;

6.1.detail.ftl前端文件,获取短评数据:其实是,获取短评数据的大部分内容;(这儿前端在获取数据的时候,有一个关于业务场景的分析和比对,比较重要!!!)

6.2.detail.ftl前端文件,获取短评数据:其实是,获取短评数据的会员昵称;(遇到了Mybatis-Plus的【@TableField(exist = false),这可以让如Evaluation对象去承载evaluation表中没有对应字段的属性;:新知识,比较重要!!!)

(1)需求说明;

(2)开发查询member会员表的Dao层;

(3)利用Mybatis-Plus的【@TableField(exist = false),在Evaluation中添加Member属性;

(4) 在EvaluationServiceImpl中,调用member的Dao层代码,以给Evaluation的Member属性赋值;

(5)在detail.ftl中,就可以获取Member信息,即获取会员昵称了;

(6)此时的效果;


零:前置分析和说明;

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】;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值