DTO、VO、BO、PO、DO理解等相关的转换

这篇具有很好参考价值的文章主要介绍了DTO、VO、BO、PO、DO理解等相关的转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、什么是DTO、VO、BO、PO、DO、POJO

pojo(domain/entity)一般定义实体类,实体类又被分为VO、BO、 PO、 DTO、DO;通过各层POJO的使用,有助于提高代码的可读性和可维护性。

2、阿里巴巴Java开发规范

DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。
BO(Business Object):业务对象,由 Service 层输出的封装业务逻辑的对象。
AO(ApplicationObject):应用对象,在Web层与Service层之间抽象的复用对象模型, 极为贴近展示层,复用度不高。
VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
Query:数据查询对象,各层接收上层的查询请求。注意超过 2 个参数的查询封装,禁止使用 Map 类来传输。
DTO、VO、BO、PO、DO理解等相关的转换

3、各类实体类之间的转换

3.1 IDEA插件完成转换(Simple Object Copy)

之间去idea去搜索
DTO、VO、BO、PO、DO理解等相关的转换
使用方法
alt+insert
DTO、VO、BO、PO、DO理解等相关的转换

3.2 MapStruct转换

MapStruct是一个Java注释处理器,用于生成类型安全的bean映射类
与动态映射框架相比,MapStruct具有以下优点:

  1. 通过使用普通方法调用(settter/getter)而不是反射来快速执行
  2. 编译时类型安全性:只能映射相互映射的对象和属性,不能将order实体意外映射到customer DTO等。
  3. 如果有如下问题,编译时会抛出异常
    3.1 映射不完整(并非所有目标属性都被映射)
    3.2 映射不正确(找不到正确的映射方法或类型转换)
  4. 可以通过freemarker定制化开发
    与BeanUtils的区别
    性能优于beanUtils
    原因:Mapstruct是在java文件到class这一步帮我们实现了转换方法,即做了预处理,提前编译好文件;BeanUtils转换的原理是使用的反射,反射的效率相对来说是低的,因为jvm优化在这种场景下有可能无效,所以在对性能要求很高或者经常被调用的程序中,尽量不要使用。我们平时在研发过程中,也会遵守这个原则,非必要,不反射。

使用方法

1.导入依赖

   <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>1.5.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>1.5.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId> 
            <version>1.18.12</version>
        </dependency>

2.整合spring简单使用
注意注解mapper的包
DTO、VO、BO、PO、DO理解等相关的转换
DTO、VO、BO、PO、DO理解等相关的转换

3.3BeanUtils

org.springframework.beans.BeanUtils
由springframework提供
源码如下
DTO、VO、BO、PO、DO理解等相关的转换文章来源地址https://www.toymoban.com/news/detail-467258.html

到了这里,关于DTO、VO、BO、PO、DO理解等相关的转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • PO、VO、DAO、BO、DTO、POJO区分

    DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。 DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。 BO(Business Object):业务对象,由 Service 层输出的封装业务逻辑的对象。 AO(ApplicationObject):应用对象,在Web层与Service层之间抽象的

    2024年02月05日
    浏览(42)
  • Java:do、dto、bo、ao、vo、pojo

    普通的Java对象,是一种简单的JavaBean,主要用于数据传输。POJO类除了属性和必要的getter/setter方法外,没有其他的业务逻辑和特殊的操作,通常作为数据模型使用。 实现类DO(Data Access Object)是一种用于访问和操作数据库数据的设计模式,它允许您定义一个数据访问对象,以

    2023年04月08日
    浏览(31)
  • 后端开发基础概念 Entity,DAO,DO,DTO,VO, Service,Controller

    Entity主要用于ORM(对象关系映射)框架中,如Hibernate、MyBatis等,以便将数据库中的数据映射为对象,方便进行业务操作。 Entity通常与数据库表一一对应,代表 业务数据 的基本单元。 通常放在项目的model或entity包下。   DAO(数据访问对象): DAO是连接业务逻辑和数据库的桥

    2024年04月08日
    浏览(37)
  • DTO,VO,PO的意义与他们之间的转换

    DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。再通俗一

    2024年02月11日
    浏览(39)
  • springboot中entity层、dto层、vo层通俗理解三者的区别

    entity :这个类的属性是跟数据库字段一模一样的(驼峰命名),当我们使用MyBatis-Plus的时候经常用得到。 dto :用于后端接收前端返回的数据,一般是post请求,前端会给我们返回一个json对象,我们这个dto就用于接收这个json对象,dto的每个属性名和json对象的key是对应的。 v

    2024年02月10日
    浏览(38)
  • VO和DTO有什么区别?

            在Java开发中,VO和DTO都是用于数据传输的对象,但它们的含义和用途有所不同。 VO(Value Object)通常是用于表示业务领域中的一个值对象,它是一个纯粹的数据对象,主要用于封装从业务层传递到UI层的数据,以便于UI层展示或者接收用户输入。VO通常不包含业务逻

    2024年02月10日
    浏览(35)
  • Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和区别分析

    @[TOC]Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和区别分析 前言 做开发项目时,总会遇到这些包,理清他们的层次,非常有助于我们对于项目的理解和建立。 现阶段CSDN上貌似没有很系统,很详细的关于层级类的解释。因此总结了一下自己的经

    2024年02月07日
    浏览(38)
  • springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)

    在资料的day01中有个“前端运行环境”的文件夹,将其中的\\\"nginx-1.20.2\\\"文件夹解压到 非中文目录 下,然后直接点击文件夹中的nginx.exe(闪退不要紧)。 然后在浏览器中直接输入localhost,如果出现以下页面,即说明前端启动成功。 启动失败解决方案 如果没有,可能原因是80端

    2024年04月12日
    浏览(151)
  • JAVA - PO DTO 生成器

    假设你是一个Java 高级程序员,我会提供一些信息,你需要帮我自动生成Java的PO、DTO 对象。 这些信息有着固定的形式,第一行是对象的类名,其后的每一行都是该对象的属性(简称“属性”)。 对于我属性,格式可能是小驼峰的形式,可能是全大写命名法的格式,我需要你自动

    2024年02月10日
    浏览(42)
  • Spring Boot DTO 示例 - 实体到 DTO 的转换

    在本教程中,我们将学习如何在 Spring Boot 应用程序中 创建 DTO(数据传输对象)类,以及如何使用 ModelMapper 库将实体转换为 DTO,反之亦然。 数据传输对象设计模式是一种常用的设计模式。它基本上用于一次性将具有多个属性的数据从客户端传递到服务器,以避免多次调用远

    2024年02月06日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包