关于删除商品详情图的问题

来源:8-8 商品编辑之后端开发下

龙晓秀

2020-04-10

老师您好,更新商品信息的代码逻辑先对原先存入的商品详情图进行删除再添加新的图片,最后执行更新商品信息操作:
// 如果有新存入的商品详情图,则将原先的删除,并添加新的图片
if (productImgHolderList != null && productImgHolderList.size() > 0) {
deleteProductImgList(product.getProductId());
addProductImgList(product, productImgHolderList);
}
try {
// 更新商品信息
int effectedNum = productDao.updateProduct(product);
if (effectedNum <= 0) {
throw new ProductOperationException(“更新商品信息失败”);
}
return new ProductExecution(ProductStateEnum.SUCCESS, product);
} catch (Exception e) {
throw new ProductOperationException(“更新商品信息失败:” + e.toString());
}
那万一更新商品失败了 事务回滚了 那详情图删除了啊 >.<

写回答

1回答

翔仔

2020-04-12

同学好,确实会存在这样的问题,由于事务只是对数据库的控制,所以如果想更完善的话,还需要捕获异常,并对文件进行处理,这里可以先考虑将原来的图片文件移动到另外一个目录而不是直接删除,这样出问题后,还能在catch里面,把图片给移动回来:)

0
1
龙晓秀
好的老师感谢回答 我来自己完善下 谢谢
2020-04-12
共1条回复

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程