1.套餐列表的展示
1.1页面的展示
并没有在页面显示数据
解决:
1.页面修改 成自己的七牛云连接
<img class="img-object f-left" :src="'http://qu4e446e6.hd-bkt.clouddn.com/'+setmeal.img" alt="">
2.在Controller里检查发现
没有给属性注入值
@Reference
private SetmealService setmealService;
注
com.alibaba.dubbo.config.annotation.Reference;
功能完成:
2.套餐详情的展示
需求:
根据套餐Id查询套餐的详情(套餐基本信息,套餐对应的检查组信息,检查组对应的检查项信息)使用到:Mybatis的关联查询
逻辑:1.根据页面传过的id查询套餐信息,之后将结果封装成 map结果集 findByIdResultMap
<!--根据套餐Id查询套餐的详情(套餐基本信息,套餐对应的检查组信息,检查组对应的检查项信息)-->
<select id="findById" parameterType="int" resultMap="findByIdResultMap">
select * from t_setmeal where id=#{id}
</select>
2.设置 map结果集 ,实体类和属性一一对应,即数据库查询到column 对应到实体类property
<!--实体类与表里的映射关系-->
<resultMap id="baseResultMap" type="com.itheima.pojo.Setmeal">
<id column="id" property="id"></id>
<result column="name" property="name"/>
<result column="code" property="code"/>
<result column="helpCode" property="helpCode"/>
<result column="sex" property="sex"/>
<result column="age" property="age"/>
<result column="price" property="price"/>
<result column="remark" property="remark"/>
<result column="attention" property="attention"/>
<result column="img" property="img"/>
</resultMap>
其中实体类里有对象集合checkGroups ,因此需要进一步映射新的map结果集,
findByIdResultMap继承了baseResultMap,同时,对属性:checkGroups进行映射
baseResultMap里的id值没有直接对应property:checkGroups , 而是作为参数传入到传入select 里进一步查询 检查组信息
<!--继承上面的映射关系,进行关联查询-->
<resultMap id="findByIdResultMap" type="com.itheima.pojo.Setmeal" extends="baseResultMap">
<!--多对多映射,将结果集的id再做参数查询检查组的信息-->
<collection property="checkGroups"
ofType="com.itheima.pojo.CheckGroup"
column="id"
select="com.itheima.dao.CheckGroupDao.findCheckGroupDaoById"
></collection>
</resultMap>
3 .查询dao.CheckGroupDao.findCheckGroupDaoById的方法 ,
<!--根据套餐ID 查询检查组的详情。(根据检查组与套餐的关联表)-->
<select id="findCheckGroupDaoById" parameterType="int" resultMap="findByIdResultMap">
select * from t_checkgroup where id in
(select checkgroup_id from t_setmeal_checkgroup where setmeal_id=#{id})
</select>
4.设置新的结果map,与套餐相似。