2023六月第一周(知识补充)

	1、controller取路径参数(@PathVariable和@Param老是弄混),将结果通过Model 返回给前端
@GetMapping("/{skuId}.html")
    public String skuItem(@PathVariable("skuId") Long skuId,Model model){
        SkuItemVo item =  skuInfoService.item(skuId);
        model.addAttribute(item);
        return "item";
    }

2、mybatis返回集合里元素类型有嵌套属性,需要封装自定义集合用于嵌套使用的集合,例如下块代码:

<resultMap id="spuItemAttrGroupVo" type="com.gewenbo.product.vo.SpuItemAttrGroupVo">
        <result property="groupName" column="attr_group_name"/>
        <collection property="attrs" ofType="com.gewenbo.product.vo.Attr">
            <result property="attrName" column="attr_name"/>
            <result property="attrValue" column="attr_value"/>
        </collection>
</resultMap>

3、mysql分组,值组合方法GROUP_CONCAT,先分组再将值组合

select
 ssav.attr_id  as attr_id,
 ssav.attr_name as attr_name,
  GROUP_CONCAT(DISTINCT ssav.attr_value) as attr_value
 from pms_sku_info as  info
 left join pms_sku_sale_attr_value as  ssav on ssav.sku_id = info.sku_id
 where info.spu_id = 13
 group by ssav.attr_id,ssav.attr_name

2023六月第一周(知识补充)_第1张图片

4、单元测试,是把mybatis接口的sql在test下测试,能避免很多麻烦,开发应该养成单元测试的习惯
2023六月第一周(知识补充)_第2张图片

你可能感兴趣的:(mybatis,java)