一站式做网站价格,静态网页设计素材,装修平台网站排名,高效网站推广公司持续学习持续更新中…
守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【08】【商品服务】Object划分_批量删除 Object划分批量删除/添加参考 Object划分 数据库中对于一张表的数据#xff0c;由于拥有隐私字段、多余字段、字段过少等原因#xff0c;不应该直…
持续学习持续更新中…
守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【08】【商品服务】Object划分_批量删除 Object划分批量删除/添加参考 Object划分 数据库中对于一张表的数据由于拥有隐私字段、多余字段、字段过少等原因不应该直接传递给客户端让客户端直接使用。并且要知道数据的传输是要经过网络通信的考虑到数据大小对于用户流量、系统并发量/吞吐量等的影响我们也不应该给客户传递冗余或者缺失的JSON数据。还有很多原因 比如我们的一个业务所需要的信息有时候其实并不是仅由一张表就能覆盖的比如数据库中的字段信息其实并不适合展示给用户看需要做处理前端发过来的数据使用一个简单的数据库对象也并不一定能处理好… 综上我们肯定要对从数据库中查询出来的表数据进行一些加工处理、业务逻辑处理之后再传递给上一层直到客户端而不是简单的一张表对应一个Model对象。 批量删除/添加
一句一句删除的话会发送很多个请求给MySQL服务器会对MySQL造成较大的性能影响也会占用资源和带宽所以使用批量删除 //TODO 写博客批量删除PostMapping(/attr/relation/delete)public R batchDeleteRelation(RequestBody ListAttrAttrGroupRelationVo relationVos) {relationService.batchDeleteRelation(relationVos);return R.ok();}TransactionalOverridepublic void batchDeleteRelation(ListAttrAttrGroupRelationVo relationVos) {this.baseMapper.batchDeleteRelation(relationVos);}Mapper
public interface AttrAttrgroupRelationDao extends BaseMapperAttrAttrgroupRelationEntity {/*一句一句删除的话会发送很多个请求给MySQL服务器会对MySQL造成较大的性能影响也会占用资源和带宽所以使用批量删除批量删除语句DELETE FROM pms_attr_attrgroup_relationWHERE(attr_id 1 AND attr_group_id 1)OR(attr_id 3 AND attr_group_id 2)OR ...*/void batchDeleteRelation(Param(relations) ListAttrAttrGroupRelationVo relationVos);}?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacecom.atguigu.gulimall.product.dao.AttrAttrgroupRelationDao!-- 可根据自己的需求是否要使用 --resultMap typecom.atguigu.gulimall.product.entity.AttrAttrgroupRelationEntity idattrAttrgroupRelationMapresult propertyid columnid/result propertyattrId columnattr_id/result propertyattrGroupId columnattr_group_id/result propertyattrSort columnattr_sort//resultMapdelete idbatchDeleteRelationDELETE FROM pms_attr_attrgroup_relation WHEREforeach collectionrelations itemitem separator OR (attr_id#{item.attrId} AND attr_group_id#{item.attrGroupId})/foreach/delete/mapper批量添加 insert idbatchAddRelationINSERT INTO pms_attr_attrgroup_relation(attr_id, attr_group_id) VALUESforeach collectionrelations itemitem separator,(#{item.attrId} , #{item.attrGroupId})/foreach/insertor TransactionalOverridepublic void batchAddRelation(ListAttrAttrGroupRelationVo relationVos) {
// 使用自己写的批量添加也可以
// this.baseMapper.batchAddRelation(relationVos);ListAttrAttrgroupRelationEntity collect relationVos.stream().map(relation - {AttrAttrgroupRelationEntity attrAttrgroupRelationEntity new AttrAttrgroupRelationEntity();
// attrAttrgroupRelationEntity.setAttrId(relation.getAttrId());
// attrAttrgroupRelationEntity.setAttrGroupId(relation.getAttrGroupId());BeanUtils.copyProperties(relation, attrAttrgroupRelationEntity);return attrAttrgroupRelationEntity;}).collect(Collectors.toList());this.saveBatch(collect);}参考
雷丰阳: Java项目《谷粒商城》Java架构师 | 微服务 | 大型电商项目. 本文完感谢您的关注支持