当前位置: 首页 > news >正文

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【08】【商品服务】Object划分_批量删除


持续学习&持续更新中…

守破离


【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【08】【商品服务】Object划分_批量删除

  • Object划分
  • 批量删除/添加
  • 参考

Object划分

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


  • 数据库中对于一张表的数据,由于拥有隐私字段、多余字段、字段过少等原因,不应该直接传递给客户端让客户端直接使用。
  • 并且要知道数据的传输是要经过网络通信的,考虑到数据大小对于用户流量、系统并发量/吞吐量等的影响,我们也不应该给客户传递冗余或者缺失的JSON数据。
  • 还有很多原因
    • 比如我们的一个业务所需要的信息有时候其实并不是仅由一张表就能覆盖的
    • 比如数据库中的字段信息其实并不适合展示给用户看,需要做处理
    • 前端发过来的数据,使用一个简单的数据库对象也并不一定能处理好
  • 综上,我们肯定要对从数据库中查询出来的表数据进行一些加工处理、业务逻辑处理之后再传递给上一层,直到客户端,而不是简单的一张表对应一个Model对象。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

批量删除/添加

一句一句删除的话,会发送很多个请求给MySQL服务器,会对MySQL造成较大的性能影响,也会占用资源和带宽,所以使用批量删除

    //TODO 写博客:批量删除@PostMapping("/attr/relation/delete")public R batchDeleteRelation(@RequestBody List<AttrAttrGroupRelationVo> relationVos) {relationService.batchDeleteRelation(relationVos);return R.ok();}
    @Transactional@Overridepublic void batchDeleteRelation(List<AttrAttrGroupRelationVo> relationVos) {this.baseMapper.batchDeleteRelation(relationVos);}
@Mapper
public interface AttrAttrgroupRelationDao extends BaseMapper<AttrAttrgroupRelationEntity> {/*一句一句删除的话,会发送很多个请求给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") List<AttrAttrGroupRelationVo> relationVos);}
<?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.atguigu.gulimall.product.dao.AttrAttrgroupRelationDao"><!-- 可根据自己的需求,是否要使用 --><resultMap type="com.atguigu.gulimall.product.entity.AttrAttrgroupRelationEntity" id="attrAttrgroupRelationMap"><result property="id" column="id"/><result property="attrId" column="attr_id"/><result property="attrGroupId" column="attr_group_id"/><result property="attrSort" column="attr_sort"/></resultMap><delete id="batchDeleteRelation">DELETE FROM `pms_attr_attrgroup_relation` WHERE<foreach collection="relations" item="item" separator=" OR ">(attr_id=#{item.attrId} AND attr_group_id=#{item.attrGroupId})</foreach></delete></mapper>

批量添加:

    <insert id="batchAddRelation">INSERT INTO  `pms_attr_attrgroup_relation`(attr_id, attr_group_id) VALUES<foreach collection="relations" item="item" separator=",">(#{item.attrId} , #{item.attrGroupId})</foreach></insert>

or

    @Transactional@Overridepublic void batchAddRelation(List<AttrAttrGroupRelationVo> relationVos) {
//        使用自己写的批量添加也可以
//        this.baseMapper.batchAddRelation(relationVos);List<AttrAttrgroupRelationEntity> 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架构师 | 微服务 | 大型电商项目.


本文完,感谢您的关注支持!


http://www.lryc.cn/news/369663.html

相关文章:

  • JAVA开发 PDF文件生成表格,表格根据内容自动调整高度
  • OSINT技术情报精选·2024年6月第1周
  • 惊艳的短视频:成都科成博通文化传媒公司
  • 消费增值模式引领业绩飙升与用户活跃
  • 二叉树从入门到AC(3)完全二叉树与堆
  • AI写作:如何让创作过程更流畅?
  • 2024中国海洋装备展暨航海装备大会(福州海峡国际会展中心)
  • CyberDAO:引领Web3时代的DAO社区文化
  • 测试面试点
  • Nginx配置详细解释:(4)高级配置
  • OceanBase 4.3 特性解析:列存技术
  • ARM32开发--PWM与通用定时器
  • debugger(七):栈帧(backtrace)
  • kafka-重试和死信主题(SpringBoot整合Kafka)
  • electron-Vue: Module parse failed: Unexpected character ‘ ‘
  • 贪心算法-数组跳跃游戏(mid)
  • C++经典150题
  • 超详解——Python 序列详解——基础篇
  • DVWA-DC-6
  • ubuntu早期版本以及18.04后的版本,通过rc.local配置开机自启
  • 【环境搭建】1.阿里云ECS服务器 安装jdk8
  • idea插件开发之定义侧边栏
  • HarmonyOS未来五年的市场展望
  • R语言:什么是向量化操作(Vectorization)?
  • Python 机器学习 基础 之 【实战案例】中药数据分析项目实战
  • python中报错“ModuleNotFoundError: No module named ‘docx2txt‘”
  • json.dumps参数
  • 未来已来,划时代革命性产品——全息数字人管家系统,全网首发
  • psql导入数据报错排查
  • 项目:双人五子棋对战-对战模块(6)