文章目录
-
-
- 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);
}
}