** 7-2 商品类别列表展示dao、service、controller 、web及resultType与resultMap 及 前后台文件调用总结

本文详细介绍了商品类别列表的后台开发过程,包括Dao层的接口与实现,使用resultType和resultMap处理数据。接着讲解了Service层的接口与实现,以及Controller层Result类和枚举类ProductCategoryStateEnum的应用。在前端部分,阐述了编写HTML、JS和CSS文件的过程,并说明了如何通过路由与后端接口交互,展示了完整的调用流程。
摘要由CSDN通过智能技术生成

一、开发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}
		
在MyBatis中,resultTyperesultMap都是用于查询结果映射的方式。 resultType是直接指定查询结果的类型。它可以是一个基本类型(比如String、Integer等),也可以是一个自定义的实体类。当使用resultType时,MyBatis会根据查询结果的字段名和实体类的属性名进行自动映射。 resultMap则是对外部ResultMap的引用。它是一种更加灵活和可重用的方式,可以定义在Mapper文件中,以供多个查询语句共享。resultMap通过映射规则,将查询结果的列和实体类的属性进行映射。 所以,resultTyperesultMap的区别在于: - resultType适用于简单的查询结果映射,通过指定查询结果的类型来进行自动映射。 - resultMap适用于复杂的查询结果映射,通过外部ResultMap的引用来进行映射,并可以定义更加灵活和可重用的映射规则。 总结起来,resultType适用于简单的查询,而resultMap适用于复杂的查询,并且可以提供更灵活的映射规则。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [resultMapresultType的区别](https://blog.csdn.net/LMY0210/article/details/128238290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [MyBatis中关于resultTyperesultMap的区别介绍](https://download.csdn.net/download/weixin_38717031/12793901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值