自定义通用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);

}
当一个男人不再对你啰嗦,不再缠着你,不再没事找你,对你说话也客气了,也不再气你了。那么恭喜你,你已经成功的失去了他。别嫌弃男人幼稚,那是他喜欢你,爱你。女人说男人像小孩子一样不成熟,可又有谁知道,男人在自己喜欢的女人面前才像小孩子,如果不喜欢你了,不爱你了,他比你爸还成熟。
原文地址:https://www.cnblogs.com/fengtangjiang/p/11135029.html