DTO是什么,哪里才会用到DTO,我用实体类entity不行吗,在Java框架中经常会遇到Dto类或者目录,总是想查一下是什么东西,这次详细讲解下,并附带代码案例

本文讲述了在Java开发中,实体类与DTO的区别,包括它们在不同层次的应用(如entity与Dao、Controller中的DTO),以及为何使用DTO以保护数据库结构和处理复杂数据。作者强调了DTO的自定义性和在数据转换中的优势。
摘要由CSDN通过智能技术生成

我在平时开发中经常遇到dto目录或者文件名定位仪xxxxxDto.java的文件,并没有 深入去确认它到底是什么,干什么用?就在我开始进入架构设计过程中,被逼得不得不深入了解基层代码,为了自己方便积累并深知DTO是什么,特此记录,欢迎大家补充。

实体类

也就是经常在entity目录下的javaBean文件,它一般是与Dao层直接关系,代表着数据库某表的字段,用于对持久化的增删改查,也就是说与数据库表一一对应的。

DTO

它一般用在接口层,比如Controller控制器这里,用于对接口的接受参数封装或者返回数据的封装,主要用于传递数据使用。

实体类与DTO的不同

通过以上定义,我们就不难看出,他们用途不一样,所处的目录也是不一样的。最明显的特点就是,DTO可以完全自定义,不需要很多注解,实体类一定是要与数据库表的字段对应。

上图是DTO的一个案例

上图是实际DTO的应用场景,返回自定义数据用到的对象。

解决疑惑

有的朋友会问,我用实体类完全可以替代DTO这里啊,否则我通过控制器传过来的数据还得需要DTO转化为实体类再入库,这不是多此一举吗?我们为什么要这样做,一是防止接口被暴露的同时把你的数据库表结构也暴露出来了,二是处理复杂数据类型的时候,比如list或者二级数组等复杂数据,这样我们使用DTO与实体类的转换,会更清晰不是吗?你像报表还有多表组合的数据,需要返回给前端展示,我们使用实体类是不是不方便呢?处理这种能力的类就是DTO,你也可以叫他实体类,为了区分,我们就叫他DTO。

我这样讲解你能听懂吗?反正我是懂了,在此记录为了我下次的遗忘,你点击收藏是为了你下次的疑惑。欢迎留言讨论。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值