一、开发Dao层
1、开发dao接口
public interface ProductCategoryDao {
/**
* 通过shop id查询店铺商品类别
* @param shopId
* @return List<ProductCategory>
*/
List<ProductCategory> queryProductCategoryList(long shopId);
}
2、开发dao实现类
resultType是返回一张表的数据
<mapper namespace="com.imooc.o2o.dao.ProductCategoryDao">
<select id="queryProductCategoryList" resultType="com.imooc.o2o.entity.ProductCategory"
parameterType="Long">
SELECT
product_category_id,
product_category_name,
priority,
create_time,
shop_id,
FROM
tb_product_category
WHERE
shop_id=#{shopId}
ORDER BY
priority DESC
</select>
</mapper>
对比:resultMap是返回多张表的数据,同时要在上面定义<resultMap>标签
<resultMap type="com.imooc.o2o.entity.Shop" id="shopMap">
<id column="shop_id" property="shopId" />
<result column="shop_name" property="shopName" />
<result column="shop_desc" property="shopDesc" />
<result column="shop_addr" property="shopAddr" />
<result column="phone" property="phone" />
<result column="shop_img" property="shopImg" />
<result column="priority" property="priority" />
<result column="create_time" property="createTime" />
<result column="last_edit_time" property="lastEditTime" />
<result column="enable_status" property="enableStatus" />
<result column="advice" property="advice" />
<association property="area" column="area_id"
javaType="com.imooc.o2o.entity.Area">
<id column="area_id" property="areaId" />
<result column="area_name" property="areaName" />
</association>
<association property="shopCategory" column="shop_category_id"
javaType="com.imooc.o2o.entity.ShopCategory">
<id column="shop_category_id" property="shopCategoryId" />
<result column="shop_category_name" property="shopCategoryName" />
</association>
<association property="owner" column="user_id"
javaType="com.imooc.o2o.entity.PersonInfo">
<id column="user_id" property="userId" />
<result column="name" property="name" />
</association>
</resultMap>
<select id="queryShopList" resultMap="shopMap">
<!-- 这里不用parameterType是因为Dao接口有三个参数了 -->
SELECT
s.shop_id,
s.shop_name,
s.shop_desc,
s.shop_addr,
s.phone,
s.shop_img,
s.priority,
s.create_time,
s.last_edit_time,
s.enable_status,
s.advice,
a.area_id,
a.area_name,
sc.shop_category_id,
sc.shop_category_name
FROM
tb_shop s,
tb_area a,
tb_shop_category sc
<where>
<if test="shopCondition.shopCategory!=null and
shopCondition.shopCategory.shopCategoryId!=null">
and s.shop_category_id = #{shopCondition.shopCategory.shopCategoryId}