• 自定义通用mapper


    自定义通用mapper多用于中间表关联查询

    (一)根据分类名称查询品牌列表

    brand

    controller

     1    /**
     2      * 根据商品分类查询品牌列表
     3      * @param categoryName
     4      * @return
     5      */
     6     @GetMapping("/category/{categoryName}")
     7     public Result findListByCategoryName(@PathVariable String categoryName){
     8         List<Map> brandList = brandService.findListByCategoryName( categoryName );
     9         return new Result( true,StatusCode.OK,"查询成功", brandList);
    10     }

    service

    public List<Map> findListByCategoryName( String categoryName);

    serviceimpl

    @Override
    public List<Map> findListByCategoryName(String categoryName) {
    return brandMapper.findListByCategoryName( categoryName );
    }

    mapper

     1 import com.changgou.pojo.Brand;
     2 import org.apache.ibatis.annotations.Param;
     3 import org.apache.ibatis.annotations.Select;
     4 import tk.mybatis.mapper.common.Mapper;
     5 
     6 import java.util.List;
     7 import java.util.Map;
     8 
     9 public interface BrandMapper extends Mapper<Brand> {
    10 
    11     /**
    12      * 根据分类名称查询品牌列表
    13      * @param categoryName
    14      * @return
    15      */
    16     @Select( "SELECT b.`name`,b.`image` " +
    17             "FROM tb_brand b ,tb_category c ,tb_category_brand cb " +
    18             "WHERE b.`id`=cb.`brand_id` AND c.`id`=cb.`category_id` AND c.name=#{categoryName}  " )
    19     public List<Map> findListByCategoryName(@Param( "categoryName" ) String categoryName);
    20 
    21 }

    (二)根据分类名称查询规格表

    冗余

    select * from tb_spec s, tb_category c where s.`template_id` = c.`template_id`

    子查询

    查spec

    select * from tb_spec where template_id in (select c.template_id from tb_category c where c.name ='手机' )

    select s.`name`,s.`options` from tb_spec s where template_id in (select c.template_id from tb_category c where c.name ='手机' )

    controller

    /**
    * 根据商品分类名称查询规格列表
    * @param categoryName
    * @return
    */
    @GetMapping("/category/{categoryName}")
    public Result findListByCategoryName(@PathVariable String categoryName){
    List<Map> list = specService.findListByCategoryName( categoryName );
    return new Result(true, StatusCode.OK,"查询成功",list);
    }

    servic

    /**
    * 根据分类名称查询规格列表
    * @param categoryName
    * @return
    */
    public List<Map> findListByCategoryName(String categoryName);

    serviceimpl

    @Override
    public List<Map> findListByCategoryName(String categoryName) {
    List<Map> list = specMapper.findListByCategoryName( categoryName );
    for(Map map:list){
    String[] options = ((String) map.get( "options" )).split( "," );
    map.put( "options", options);
    }
    return list;
    }


    中间表

    /**
    * 根据分类名称查询规格列表
    * @param categoryName
    * @return
    */
    @Select( "SELECT `name`,`options` FROM tb_spec WHERE template_id IN ( SELECT template_id FROM tb_category WHERE NAME=#{categoryName} )" )
    public List<Map> findListByCategoryName(@Param("categoryName") String categoryName);

    }
    当一个男人不再对你啰嗦,不再缠着你,不再没事找你,对你说话也客气了,也不再气你了。那么恭喜你,你已经成功的失去了他。别嫌弃男人幼稚,那是他喜欢你,爱你。女人说男人像小孩子一样不成熟,可又有谁知道,男人在自己喜欢的女人面前才像小孩子,如果不喜欢你了,不爱你了,他比你爸还成熟。
  • 相关阅读:
    和大家分享下我的找工作历程。
    Traits 编程技法+模板偏特化+template参数推导+内嵌型别编程技巧
    SGI STL空间配置器和内存池
    调试Release版本应用程序
    HawkNL 源码剖析
    C++:float 转型到 std::string 之总结。
    将一个数上调至2^n的倍数《参考STL源码》
    JavaScript中Ajax的使用
    jQuery之noConflict() 方法
    Linq to Object 的简单使用示例
  • 原文地址:https://www.cnblogs.com/fengtangjiang/p/11135029.html
Copyright © 2020-2023  润新知