千峰商城-springboot项目搭建-73-购物车列表数据库实现

一、流程分析
  

二、数据库实现

SQL:

#根据用户id查询当前用户的购物车信息
SELECT c.*,p.product_name,i.url
FROM shopping_cart c 
INNER JOIN product p
INNER JOIN product_img i
ON c.product_id=p.product_id AND i.item_id=p.product_id
WHERE user_id=14 AND i.is_main=1;

实体类:

ShoppingCartVO :
//新增productName,productImg属性
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ShoppingCartVO {

    private Integer cartId;
    private String productId;
    private String skuId;
    private String userId;
    private String cartNum;
    private String cartTime;
    private BigDecimal productPrice;
    private String skuProps;
    
    private String productName;
    private String productImg;

    
}

三、接口实现

 1.接口定义查询方法:

ShoppingCartMapper :
@Repository
public interface ShoppingCartMapper extends GeneralDAO<ShoppingCart> {
    
    public List<ShoppingCartVO> selectShopcartByUserId(int userId);
}

2.映射配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qfedu.fmmall.dao.ShoppingCartMapper">
  <resultMap id="BaseResultMap" type="com.qfedu.fmmall.entity.ShoppingCart">
    <!--
      WARNING - @mbg.generated
    -->
    <id column="cart_id" jdbcType="INTEGER" property="cartId" />
    <result column="product_id" jdbcType="VARCHAR" property="productId" />
    <result column="sku_id" jdbcType="VARCHAR" property="skuId" />
    <result column="user_id" jdbcType="VARCHAR" property="userId" />
    <result column="cart_num" jdbcType="VARCHAR" property="cartNum" />
    <result column="cart_time" jdbcType="VARCHAR" property="cartTime" />
    <result column="product_price" jdbcType="DECIMAL" property="productPrice" />
    <result column="sku_props" jdbcType="VARCHAR" property="skuProps" />
  </resultMap>

  <resultMap id="ShoppingCartVOMap" type="com.qfedu.fmmall.entity.ShoppingCartVO">
    <!--
      WARNING - @mbg.generated
    -->
    <id column="cart_id" jdbcType="INTEGER" property="cartId" />
    <result column="product_id" jdbcType="VARCHAR" property="productId" />
    <result column="sku_id" jdbcType="VARCHAR" property="skuId" />
    <result column="user_id" jdbcType="VARCHAR" property="userId" />
    <result column="cart_num" jdbcType="VARCHAR" property="cartNum" />
    <result column="cart_time" jdbcType="VARCHAR" property="cartTime" />
    <result column="product_price" jdbcType="DECIMAL" property="productPrice" />
    <result column="sku_props" jdbcType="VARCHAR" property="skuProps" />
    <result column="product_name" jdbcType="DECIMAL" property="productName" />
    <result column="url" jdbcType="VARCHAR" property="productImg" />
    
  </resultMap>
  
  <select id="selectShopcartByUserId" resultMap="ShoppingCartVOMap">
    SELECT c.cart_id,
           c.product_id,
           c.sku_id,
           c.user_id,
           c.cart_num,
           c.cart_time,
           c.product_price,
           c.sku_props,
           p.product_name,
           i.url
    FROM shopping_cart c
    INNER JOIN product p
    INNER JOIN product_img i
    ON c.product_id=p.product_id 
    AND i.item_id=p.product_id
    WHERE user_id=#{userId} AND i.is_main=1;
  </select>
</mapper>

 3.测试:

   @Autowired
    private ShoppingCartMapper shoppingCartMapper;

    @Test
    public void testShoppingCart(){
        List<ShoppingCartVO> shoppingCartVOS = shoppingCartMapper.selectShopcartByUserId(1);
        System.out.println(shoppingCartVOS);
    }
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值