程序员社区

【校园商铺SSM-20】商品添加,商品图片批量添加--Dao层的实现

文章目录

      • 1. 商品添加Dao层的实现
        • 1.1 ProductDao接口
        • 1.2 ProductDao.xml实现类
        • 1.3 ProductDaoTest测试类
      • 2. 商品图片批量添加Dao层的实现
        • 2.1 ProductImgDao接口
        • 2.2 ProductImgDao.xml实现类
        • 2.3 ProductImgDao.xml测试类

1. 商品添加Dao层的实现

1.1 ProductDao接口

import com.imooc.o2o.entity.Product;

public interface ProductDao {
    /**
     * 添加商品
     * @param product
     * @return
     */
    int insertProduct(Product product);
}

1.2 ProductDao.xml实现类

<?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.imooc.o2o.dao.ProductDao">
    <insert id="insertProduct" parameterType="com.imooc.o2o.entity.Product"
            useGeneratedKeys="true" keyProperty="productId" keyColumn="product_id">
        insert into tb_product(
            product_name,
            product_desc,
            img_addr,
            normal_price,
            promotion_price,
            priority,
            create_time,
            last_edit_time,
            enable_status,
            product_category_id,
            shop_id)
        values(
            #{productName},
            #{productDesc},
            #{imgAddr},
            #{normalPrice},
            #{promotionPrice},
            #{priority},
            #{createTime},
            #{lastEditTime},
            #{enableStatus},
            #{productCategory.productCategoryId},
            #{shop.shopId})
    </insert>
</mapper>

1.3 ProductDaoTest测试类

在这里插入图片描述
在这里插入图片描述

import com.imooc.o2o.BaseTest;
import com.imooc.o2o.entity.Product;
import com.imooc.o2o.entity.ProductCategory;
import com.imooc.o2o.entity.ProductImg;
import com.imooc.o2o.entity.Shop;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import static org.junit.Assert.assertEquals;

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class ProductDaoTest extends BaseTest {
  
    @Autowired
    private ProductDao productDao;

    @Test
    public void testAInsertProduct() throws Exception{
        Shop shop1 = new Shop();
        shop1.setShopId(142L);

        ProductCategory pc1 = new ProductCategory();
        pc1.setProductCategoryId(9L);

        //初始化三个商品实例并添加进shopId为1的店铺里
        Product product = new Product();
        product.setProductName("测试1");
        product.setProductDesc("测试desc1");
        product.setImgAddr("test1");
        product.setPriority(1);
        product.setEnableStatus(1);
        product.setCreateTime(new Date());
        product.setLastEditTime(new Date());
        product.setShop(shop1);
        product.setProductCategory(pc1);

        Product product2 = new Product();
        product2.setProductName("测试2");
        product2.setProductDesc("测试desc2");
        product2.setImgAddr("test2");
        product2.setPriority(1);
        product2.setEnableStatus(1);
        product2.setCreateTime(new Date());
        product2.setLastEditTime(new Date());
        product2.setShop(shop1);
        product2.setProductCategory(pc1);

        Product product3 = new Product();
        product3.setProductName("测试3");
        product3.setProductDesc("测试desc3");
        product3.setImgAddr("test3");
        product3.setPriority(1);
        product3.setEnableStatus(1);
        product3.setCreateTime(new Date());
        product3.setLastEditTime(new Date());
        product3.setShop(shop1);
        product3.setProductCategory(pc1);

        int effectedNum = productDao.insertProduct(product);
        assertEquals(1,effectedNum);
        effectedNum = productDao.insertProduct(product2);
        assertEquals(1,effectedNum);
        effectedNum = productDao.insertProduct(product3);
        assertEquals(1,effectedNum);
    }
}

在这里插入图片描述

2. 商品图片批量添加Dao层的实现

2.1 ProductImgDao接口

import com.imooc.o2o.entity.ProductImg;
import java.util.List;

public interface ProductImgDao {
    /**
     * 批量添加商品详情图片
     * @param productImgList
     * @return
     */
    int batchInsertProductImg(List<ProductImg> productImgList);
}

2.2 ProductImgDao.xml实现类

<?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.imooc.o2o.dao.ProductImgDao">
    <insert id="batchInsertProductImg" parameterType="java.util.List">
        insert into tb_product_img(
        img_addr,
        img_desc,
        priority,
        create_time,
        product_id)
        values
        <foreach collection="list" item="productImg" index="index" separator=",">
            (
                #{productImg.imgAddr},
                #{productImg.imgDesc},
                #{productImg.priority},
                #{productImg.createTime},
                #{productImg.productId}
            )
        </foreach>
    </insert>
</mapper>

2.3 ProductImgDao.xml测试类

import com.imooc.o2o.BaseTest;
import com.imooc.o2o.entity.ProductImg;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import static org.junit.Assert.assertEquals;

public class ProductImgDaoTest extends BaseTest {
    @Autowired
    private ProductImgDao productImgDao;

    @Test
    public void testABatchInsertProductImg() throws Exception{
        //productId为1的商品里添加两个商品详情图片
        ProductImg productImg1 = new ProductImg();
        productImg1.setImgAddr("图片1");
        productImg1.setImgDesc("测试图片1");
        productImg1.setPriority(1);
        productImg1.setCreateTime(new Date());
        productImg1.setProductId(24L);

        ProductImg productImg2 = new ProductImg();
        productImg2.setImgAddr("图片2");
        productImg2.setImgDesc("测试图片2");
        productImg2.setPriority(1);
        productImg2.setCreateTime(new Date());
        productImg2.setProductId(24L);

        List<ProductImg> productImgList = new ArrayList<>();
        productImgList.add(productImg1);
        productImgList.add(productImg2);

        int effectedNum = productImgDao.batchInsertProductImg(productImgList);
        assertEquals(2,effectedNum);
    }
}

在这里插入图片描述

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【校园商铺SSM-20】商品添加,商品图片批量添加--Dao层的实现

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区