Data Transfer Object-DTO,数据传输对象,前端参数设计多个数据表对象

这篇具有很好参考价值的文章主要介绍了Data Transfer Object-DTO,数据传输对象,前端参数设计多个数据表对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

涉及两张表的两个实体对象

用于在业务逻辑层和持久层(数据库访问层)之间传输数据。
DTO的主要目的是将多个实体(Entity)的部分属性或多个实体关联属性封装成一个对象,以便在业务层进行数据传输和处理,从而避免直接暴露实体对象给上层或客户端,即前端的请求设计了多张表的内容
使用步骤-基于mybatisplus
1.创建表1实体类
2.创建表2实体类,封装一个实体2集合
Data Transfer Object-DTO,数据传输对象,前端参数设计多个数据表对象,java
3.两张表都需创建mapper,service
4.在服务层编写方法,注意,这里传参使用的子类
Data Transfer Object-DTO,数据传输对象,前端参数设计多个数据表对象,java
5.对应的controller调用该方法即可

涉及两张表的一个实体和另一个实体的单个属性

这里使用到的原理也是Dto
Data Transfer Object-DTO,数据传输对象,前端参数设计多个数据表对象,java文章来源地址https://www.toymoban.com/news/detail-606442.html

实现步骤
1.首先定义Page<Dish> pageinfo,通过条件信息,查询出dish表对象
2.其次,定义Page<DishDto> dishDtoPage,数据传输对象类集合,该类是用于存取菜品分类的名称及pageinfo的信息
3.将pageinfo的信息拷贝给dishDtoPage,需要注意的是,Page对象中的records使用于存取dish数据对象的,但是该对象信息不包含菜品分类的类名,不应该拷贝
 BeanUtils.copyProperties(pageinfo,dishDtoPage,"records");
4.遍历查询到的pageinfo信息,该对象用于存取dish表的信息,在遍历的过程中,通过注入CategoryService信息,为categoryName进行赋值
5.将遍历出的信息封装成一个List集合对象
6.通过 dishDtoPage.setRecords(dishDtoList),为DishDto的records字段赋值,最后返回该对象,就能实现菜品分类名称的展示了```

```bash
 public R<Page> page(int page,int pageSize,String name)
    {
    步骤一:
        Page<Dish> pageinfo=new Page<>(page,pageSize);//分页查询,封装一个菜品类,菜品信息
        
        /**
         * 设置Dish对象的查询信息
         */
        LambdaQueryWrapper<Dish> dishLambdaQueryWrapper=new LambdaQueryWrapper<>();
        dishLambdaQueryWrapper.like(name!=null, Dish::getName,name);
        dishLambdaQueryWrapper.orderByDesc(Dish::getUpdateTime);
        dishService.page(pageinfo,dishLambdaQueryWrapper);//查询
     步骤二:
		Page<DishDto> dishDtoPage=new Page<>();//封装一个数据传输对象,以便获取该对象的某些属性
		
        /**
         * 使用BeanUtils.copyProperties方法,将pageinfo拷贝给dishDtoPage,records的参数不拷贝,
         */
        // Page<Dish> ,records封装的是Dish数据对象 protected List<T> records;
     步骤三:
        BeanUtils.copyProperties(pageinfo,dishDtoPage,"records");
		
	 步骤四/五:
        List<Dish> records = pageinfo.getRecords();//dish对象

        /**
         * 遍历Dish对象集合,并为DishDto中的categoryName赋值
         */
        List<DishDto> dishDtoList=records.stream().map((item)->
        {
            DishDto dishDto=new DishDto();//构造方法创建的对象,其属性都为空,需要拷贝records的值
            BeanUtils.copyProperties(item,dishDto);
            Long categoryId = item.getCategoryId();
            Category category = categoryService.getById(categoryId);//根据分类id查找分类
            if(category!=null)
            {
                String categoryName = category.getName();
                dishDto.setCategoryName(categoryName);
            }
            return dishDto;
        }).collect(Collectors.toList());
        /**
         * 将page分页对象中的records重新赋值封装后,在将其返回给前端页面
         */
     步骤六:
        dishDtoPage.setRecords(dishDtoList);
        return R.success(dishDtoPage);
    }

到了这里,关于Data Transfer Object-DTO,数据传输对象,前端参数设计多个数据表对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据传输安全不达标:数据传输安全措施未达到行业标准

    引言 近年来随着信息技术的快速发展与普及应用, 企业、政府及个人的信息安全问题日益凸显出来; 其中数据安全是当前网络安全的焦点之一.本文针对数据传输安全问题进行分析并提出相应的解决方法来保障企业、个人等的数据安全性. 数据传输安全的定义和特点 **数据的完

    2024年02月02日
    浏览(45)
  • 使用Data Transfer Hub迁移MaxCompute数据至S3数据湖实践

    一.概述 随着对象存储使用得到广泛普及,越来越多的企业客户从其他云对象存储迁移到Amazon S3时对实时性,安全性,稳定性,易用性和同步效率有不同的要求。其次,数据存储如关系型/非关系型数据库,Elasticsearch,Redis等皆可通过导出文件或快照进行数据导入,使数据迁

    2024年02月03日
    浏览(32)
  • C#蓝牙连接及传输数据的三种方式(蓝牙传输文件、二进制数据)

          先下载InTheHand.Net.Personal.dll并在C#中引用,这个需要在网上下载      先看界面            这种方式优点是稳定性较强,基本无错误,就是偶尔需要提前蓝牙配对。        这种方式直接与蓝牙设备进行配对的时候会报错,请求的地址无效,这时候需要在被检测的蓝牙

    2024年02月11日
    浏览(62)
  • BLE Mesh蓝牙mesh传输大数据包传输文件照片等大数据量通讯

    1、BLE Mesh数据传输现状          BLE Mesh网络技术是低功耗蓝牙的一个进阶版,Mesh扩大了蓝牙在应用中的规模和范围,因为它同时支持超过三万个网络节点,可以跨越大型建筑物,不仅可以使得医疗健康应用更加方便快捷,还能监测像学校这类的大型公共场所随时监测学生的

    2024年02月08日
    浏览(33)
  • 数据通信——传输层TCP(可靠传输原理的ARQ)

    上一篇讲述了停止等待协议的工作流程,在最后提到了ARQ自动请求重传机制。接下来,我们就接着上一篇的篇幅,讲一下ARQ这个机制 还是这个图来镇楼  发送端对出错的数据帧进行重传是自动进行的,因而这种差错控制体制常简称为ARQ(Automatic Repeat reQuest),直译是自动重传请

    2024年02月10日
    浏览(31)
  • FPGA(Verilog)实现uart传输协议传输数据(含仿真)

    目录 实现功能: 1.接收uart串行数据,输出并行数据(1byte)。 2.输入并行数据(1byte),输出uart串行数据。 3.完成uart传输的1次环回。 uart协议的1帧数据传输 模块封装-port设置 Verilog代码实现 1.uart接收模块:接收串行数据,输出并行数据和其有效标志。 仿真结果: 2.uart发送模块:接收

    2024年04月16日
    浏览(34)
  • 如何实现网络数据传输

    目录 前言 1.理解源IP地址和目的IP地址 2.理解端口号 2.1端口号与进程pid的关系 2.2源端口号和目的端口号 3.协议 3.1TCP协议 3.2认识UDP协议 4.网络字节序 5.socket编程接口 总结         在上一篇文章网络框架中给大家对网络的整体进行了一个宏观的介绍,这篇文章中我们进一步来

    2024年02月13日
    浏览(35)
  • TCP可靠数据传输

    TCP的可靠数据传输 1.TCP保证可靠数据传输的方法 TCP主要提供了检验和、序号/确认号、超时重传、最大报文段长度、流量控制等方法实现了可靠数据传输。 检验和 通过检验和的方式,接收端可以检测出来数据是否有差错和异常,假如有差错就会直接丢失该TCP报文段。 序号/确

    2024年02月11日
    浏览(26)
  • 让数据传输更安全

    在阅读RabbitMQ数据传输安全的章节时,提到了ssl协议,用了很大篇幅介绍使用openssl生成一些列秘钥和证书,如果没有相关基础,会不太好理解,本篇就来总结下数据安全相关的概念以及浏览器HTTPS的应用。 通过介绍,你会了解到: 数据安全的基本概念 加密算法 数字证书和证

    2024年02月03日
    浏览(33)
  • 音视频--视频数据传输

    H264码流RTP封装方式详解:https://blog.csdn.net/water1209/article/details/126019272 H264视频传输、编解码----RTP协议对H264数据帧拆包、打包、解包过程: https://blog.csdn.net/wujian946110509/article/details/79129338 H264之NALU解析: https://zhuanlan.zhihu.com/p/409527359 注意:H264帧数据打包进入RTP packet时会把s

    2024年02月13日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包