上述的SQL语句如何返回Map<String, Long>的数据格式,其中Key为product_id,value为favorites
时间: 2024-03-08 07:46:39 浏览: 119
查询返回Map
您可以在MyBatis的XML映射文件中使用`<resultMap>`标签来指定返回结果的映射关系,将查询结果映射为Map<String, Long>类型的数据格式。具体修改如下:
```
<select id="countFavoriteProducts" resultMap="favoriteResultMap">
SELECT `product_id`, COUNT('user_id') favorites FROM `favorite_product`
WHERE `product_id` IN
<foreach collection="productIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
GROUP BY `product_id`
</select>
<resultMap id="favoriteResultMap" type="java.util.HashMap">
<id property="product_id" column="product_id"/>
<result property="favorites" column="favorites" jdbcType="BIGINT"/>
</resultMap>
```
在上述代码中,我们新增了一个`<resultMap>`标签,并将其`id`属性设置为"favoriteResultMap",`type`属性设置为`java.util.HashMap`。其中,`<id>`标签用于指定Map中的key为查询结果中的"product_id"字段,`<result>`标签用于指定Map中的value为查询结果中的"favorites"字段,并指定其`jdbcType`为"BIGINT"。
这样,当MyBatis执行该查询语句时,就会将查询结果自动映射为Map<String, Long>类型的数据格式,其中Key为"product_id",value为"favorites"。
阅读全文