我们在后端的开发中经常会将DO对象传到Service层直接作为DTO传给前端,这样做其实会有很多弊端。

(一)DO对象一般其成员域和数据库字段是对应的,所以不能添加额外的字段,但是有时候端就是需要这个字段。反之前端要向后端传一些额外的字段,DO也没办法接受,前端的Form表单不可能和数据库共用同一套数据对象。

(二)DO可能是由框架控制生命周期的,比如hibernate,如果他的某个属性是懒加载的,那万一不在session中调用的话会抛出异常。而DTO对象很干净,你可以自己控制DTO,喜欢就存在缓存里,不喜欢也没关系。同时DO对象如果属性变化的话会有是否需要同步更新数据库的问题,而业务上DTO和DO并无关联。

后端DTO(数据传输对象)与DAO(数据库数据源对象)解耦的好处相关推荐

  1. 在mysql中数据库对象包括_access2010数据库的对象包括哪几种

    access2010数据库的对象包括哪几种? Access2010主要对象有数据表.查询.报表.窗体.宏.模块. 数据表(Table) --表是Access数据库的核心对象,主要是用于存储数据,是创建 ...

  2. php dao类设计,DAO数据访问对象设计 - GoFrame官网 - 类似PHP-Laravel, Java-SpringBoot的Go企业级开发框架...

    关于DAO数据访问对象设计其实是关于GoFrame框架工程化实践中比较重要一块设计. DAO设计结合GoFrame的ORM组件性能和易用性都很强,可以极大提高开发和维护效率.看完本章节内容之后,小伙伴 ...

  3. 简述oracle的主要数据库对象,Oracle数据库数据对象分析

    Oracle数据库数据对象分析 Oracle数据库数据对象中最基本的是表和视图,其他还有约束.序列.函数.存储过程.包.触发器等.对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数 ...

  4. 鸿蒙对象关系映射数据库

    对象关系映射数据库 对象关系映射数据库简介 对象关系映射数据库存储开发步骤 1.添加配置 2.数据库的创建 3.数据表(实体对象类)的创建 4.使用对象数据操作接口OrmContext创建数据库 5. ...

  5. java领域对象_java的几种对象(po,dto,dao等)

    j2ee中,经常提到几种对象(object),理解他们的含义有助于我们更好的理解面向对象的设计思维. POJO(plain old java object):普通的java对象,有别于特殊的java对 ...

  6. java bo对象_java的几种对象(PO,VO,DAO,BO,POJO,DTO)解释

    PO PO(Persistant Object)可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数据库的操 ...

  7. DTO数据传输对象详解

    文章目录 一.DTO是什么? 二.DTO解决的问题 三.代码演示 一.DTO是什么? DTO (数据传输对象) 数据传输对象(DTO),是一种设计模式之间传输数据的软件应用系统.数据传输目标往往是数据 ...

  8. mysql的ole db 访问接口msdasql的数据源对象_数据库访问接口(ODBC,OLEDB,ADO)

    目录 数据库访问接口发展历史 ODBC历史 ODBC(Open Database Connectivity,开放数据库互连).要了解ODBC是什么,先了解一下数据库连接的相关知识.在最开始连接数据库时 ...

  9. 复杂类型java对象 — dto数据传输对象

    dto(Data Transfer Object)是一个特殊的java bean,名为:数据传输对象.dto对象是对原始对象的扩展,用于数据的保存和传递. 在项目开发时,一般会涉及到多个对象数据的保存 ...

最新文章

  1. 在MVC3项目中结合NInject实现依赖注入
  2. 把地图中的道路以线条提取出来_入围 ICRA 2019 最佳论文:MIT利用粗粒度地图实现自动驾驶...
  3. 迎合人工智能时代 码教授开设Python课程
  4. (1)谷歌2011校园招聘:
  5. 6.C语言迷宫程序界面版
  6. android旋转角度,android 旋转角度总结
  7. pip更新后怎么还是旧版本_微信号不能修改第二次怎么办?微信更新后还是不能修改微信号怎么办?...
  8. php列表顺序,保存列表的顺序(php / zend / jquery)
  9. 如何使用 Cisdem Video Converter 在 Mac 上将 MOV 转换为 MP3
  10. zen服务器芯片,Intel颤抖!AMD 32核心终极版Zen亮相:媲美人脑
  11. 贪吃蛇代码c语言100行,贪吃蛇代码-C语言.doc
  12. Unity3D AssetStore下载文件/项目保存位置
  13. 矩阵快速幂 斐波那契数列
  14. html5教程_最好HTML和HTML5教程
  15. 调频连续波雷达基本原理(1)-测距原理详解
  16. prisma orm_使用Prisma和React构建RECIPE应用
  17. 新辰:台北90后创业炸鸡配啤酒 来自星星的你 不成功也难
  18. linux gfortran编译,gfortran编译学习
  19. 大国的崛起:第一集:海洋时代(开篇·葡西)
  20. LDO和BUCK降压稳压器对比

热门文章

  1. STL源码剖析 第二次温习 细节审核
  2. C++ primer第六章6.5函数的学习 之特殊用途的语言特性
  3. C++标准库函数begin和end函数
  4. Linux学习笔记(二)
  5. 如此如此,怎能师夷长技以制夷!
  6. Linux 安装 jdk ( 两种方式 )
  7. 云服务器主机内网 ip 和外网 ip 的区别
  8. 【docker】常用docker命令,及一些坑
  9. 记录no static method cannot be reference
  10. 写给大数据开发初学者的话3