Java SpringBoot中的 Entity DTO VO 三者的关系 这篇就够了

06-01 1559阅读

目录

一、Entity

二、DTO

三、VO

四、理解Entity、DTO、VO

五、Controller、Service、Dao层中的Entity、DTO、VO


一、Entity

Entity:它包含最基础的属性,这些属性直接映射到数据库表的列。Entity 通常用于数据库操作,比如 CRUD(创建、读取、更新、删除)操作。

二、DTO

DTO:它包含了 Entity 的所有属性,并且可能添加了一些额外的属性。这些额外的属性可能是为了满足特定的业务需求,或者是为了在不同的服务之间传输数据。DTO 通常用于服务层,用于不同服务之间的数据传输。

三、VO

VO:它只包含 Entity 的一部分属性。这些属性通常是领域逻辑所需要的,而不是所有的数据库字段。VO 通常用于领域逻辑层,用于处理领域相关的业务。

四、理解Entity、DTO、VO

Entity 是数据的骨架,只包含基础信息。

DTO 是 Entity 的扩展,包含了所有基础信息加上一些额外的信息。

VO 是 Entity 的子集,只包含领域逻辑所需要的部分信息。

五、Controller、Service、Dao层中的Entity、DTO、VO

1.Controller 层:这一层主要负责处理 HTTP 请求和响应,将用户的输入转换为服务层可以处理的请求,并且将服务层返回的响应转换为适当的 HTTP 响应。在 Controller 层中,你可能会遇到 DTO 和 VO。

        DTO:在 Controller 层接收或发送数据时,可能会使用 DTO。例如,当客户端发送创建用户的请求时,它可能会发送一个包含用户信息的 DTO。当服务层处理完请求后,Controller 可能会将一个包含响应数据的 DTO 发送给客户端。

Java SpringBoot中的 Entity DTO VO 三者的关系 这篇就够了
(图片来源网络,侵删)

        VO:如果 Controller 层需要将数据呈现给前端(如 AJAX 请求的 JSON 响应),它可能会使用 VO 来包装数据。VO 通常包含前端需要的少量信息,以便于渲染和显示。

Java SpringBoot中的 Entity DTO VO 三者的关系 这篇就够了
(图片来源网络,侵删)

2.Service 层:这一层包含了业务逻辑,负责处理来自 Controller 的请求,执行操作,并返回响应。在 Service 层中,你可能会遇到 DTO 和 Entity。

        DTO:Service 层可能会接收来自 Controller 的 DTO,进行业务逻辑处理,并且可能需要将 DTO 转换为 Entity 来进行数据库操作。处理完成后,Service 层可能会将结果封装在另一个 DTO 中,返回给 Controller。

Java SpringBoot中的 Entity DTO VO 三者的关系 这篇就够了
(图片来源网络,侵删)

        Entity:Service 层在处理业务逻辑时可能会直接使用 Entity,尤其是在与数据库交互时。例如,当需要更新或删除数据库中的记录时,Service 层会使用 Entity。

3.DAO 层(数据访问层):这一层负责与数据库交互,执行 CRUD 操作。在 DAO 层中,你只会遇到 Entity。

        Entity:DAO 层操作的是数据库中的实体,它使用 Entity 类来映射数据库表,并执行 SQL 查询来插入、检索、更新或删除数据。

        在整个过程中,Entity 是最基础的,它直接映射到数据库表。DTO 和 VO 是基于 Entity 的,但它们根据不同的需求进行了调整和扩展。DTO 更注重于数据的传输和业务逻辑的实现,而 VO 更注重于数据的展示。

在实际开发中,这三种对象可能会在不同的层次上使用,以确保数据的一致性和传输的效率。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码