本节增加了商品类别删除的后端功能。前端会传入一个商品类别Id,后端通过Session中的Shop来唯一的对一个商品类别进行删除。虽然说商品类别Id在数据库中是主键,是一个唯一标识号,但是为了防止非本店铺管理员对其他店铺的商品类别进行误删,加入了ShopId的判断,来保证删除的安全性。
ProductCategoryDao.java
/**
* 删除指定商品类别
*/
int deleteProductCategory(@Param("productCategoryId") long productCategoryId, @Param("shopId") long shopId);
ProductCategoryDao.xml
<delete id="deleteProductCategory">
DELETE FROM
tb_product_category
WHERE
product_category_id = #{productCategoryId}
AND shop_id = #{shopId}
</delete>
对Dao进行Junit单元测试
-
这里提到一个新知识点:Junit注解之@FixMethodOrder(方法)
三种方法:
1、JVM:按照代码定义的JVM方法顺序执行
2、NAME_ASCENDING通过方法名字顺序执行
3、DEFAULT:随机的不可预期的顺序执行 -
提到一个新概念,测试回环:Dao层的Junit单元测试增加与删除同时进行测试,不改变数据库结果的同时,完成单元测试。
ProductCategoryService.java
/**
* 将此类别的所有商品的类别ID置为空再删除掉该商品类别
* @param productCategoryId
* @param shopId
* @return
* @throws ProductCategoryOperationException
*/
ProductCategoryExecution deleteProductCategory(long productCategoryId,